如果在配置文件中写Action执行完的跳转的路径,那么在编写Action Java代码的时候还需要切换至配置文件才能知道action转向那个页面,直接写在Action中不好么?
依照这种并且结合struts1,struts2的零配置,已经在多个项目中应用,也没发现问题
struts1中我的做法是
public ActionForward edit(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) {
//......
return new ActionForward("/demo/Blog/edit.jsp");
}
struts1中自己另外做了扩展,可以将action的name作为formBean的配置,整个项目的struts-config配置只有下面这么一段话,path举例/admin/User/delete.do
<action-mappings>
<action path="/*/*/*"
type="com.kingsoft.{1}.web.action.{2}Action"
name="com.kingsoft.{1}.web.form.{2}Form" scope="request"
validate="false" parameter="{3}" attribute="{2}Form">
</action>
</action-mappings>
struts2中自己另外做了扩展,实现forward的做法是
/**进入更新页面*/
public String edit() {
blog = (Blog)blogManager.getById(id);
return "/demo/Blog/edit.jsp";
}
struts2中实现redirect的做法是,前面增加了一个"!"号
/**保存更新*/
public String update() {
blogManager.update(this.blog);
return "!/demo/Blog/list.action";
}
struts2增加了direct的返回类型,struts.xml配置也只有一段话
<package name="default" namespace="/demo" extends="custom-default">
<action name="*/*" method="{2}" class="com.kingsoft.demo.action.{1}Action">
<result name="*" type="direct">通过Action直接返回</result>
</action>
</package>