Я все еще довольно новичок в Struts (для унаследованного проекта для текущего работодателя), в этом случае я использую Struts 1, поэтому не уверен, имеет ли это значение.
Я пытаюсь отредактировать действие, которое имеет несколько форвардов, но для простоты я только что включил одно. Эта конкретная пересылка просто сопоставляется со статической JSP и обычно доступна без входа в приложение.
Обычно к этой странице обращаются (если я запускаю ее локально):
https://localhost/sc.do?page=download
Форвард установлен как:
<forward name="download" path=".downloadPage"/>
Теперь все, что я пытался сделать, это поменять имя download
на что-то другое (в форварде ниже), например downloadtest
, я позаботился о том, чтобы перестроить его и т. Д. И перезапустил, теперь я не могу получить к нему доступ в
https://localhost/sc.do?page=download
но я также не могу получить доступ к странице по адресу: https://localhost/sc.do?page=downloadtest
Я действительно запутался в том, что еще может быть в файле конфигурации, который бы мешал этому работать, я читал учебные пособия и, насколько я понимаю, это должно сработать. Любой совет с благодарностью.
<action path="/sc"
type="com.somecompany.wa.actions.PageDispatchAction"
name="scAdminForm"
parameter="page">
<set-property property="secure" value="true"/>
<forward name="downloadtest" path=".downloadPage"/>
</action>
Это класс com.somecompany.wa.actions.PageDispatchAction:
public class PageDispatchAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
ActionContext context = new ActionContext(mapping, form, request, response);
Command command = new CheckPageSecurityCommand();
boolean stop = command.execute(context);
if (stop) {
return null;
} else {
return (ActionForward) context.get("forward");
}
}
// redirects control to logout page
// calls to this method should be followed by return null or end of method.
protected void redirectToLogout(HttpServletRequest request, HttpServletResponse response) throws Exception {
ServletWebContext context = new ServletWebContext(request.getSession(true).getServletContext(), request, response);
Command command = new RedirectToLogoutCommand();
command.execute(context);
}
}