`
badqiu
  • 浏览: 670550 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

直接在Action中返回forward不好么

    博客分类:
  • Java
阅读更多
如果在配置文件中写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>


分享到:
评论
5 楼 littleJava 2009-06-03  
配置在xml文件中,是假设 项目跳转路径是有可能变化的……问题是在实际项目中这种返回路径变化的情况很少,因此直接硬编码也是可行的。
4 楼 Arno 2008-10-24  
用spring MVC呢?
3 楼 imauto 2008-07-18  
嘿嘿,如果搞不明白,想想为什么你要用struts呢?
2 楼 badqiu 2008-07-08  
晕,转入门区了.
1 楼 downpour 2008-07-08  
你可以直接看看Struts有多少种Result Type。如果你不用那些Result,这么写也没有什么问题。

相关推荐

    struts1和struts2的区别

    首先,从ActionForStruts2可以看出,返回的对象不是ActionForward,而是String。如果你不喜欢以字符串的形式出现在你的代码中,有个Helper接口Action可以以常量方式提供常见结果,如“success”、“none”、“error...

    Spring面试题

    Execute()从ActionForm对象中获取数据,完成业务逻辑,返回一个ActionForward对象,ActionServlet再把客户请求转发给ActionForward对象指定的jsp组件,ActionForward对象指定的jsp生成动态的网页,返回给客户。...

    ssh(structs,spring,hibernate)框架中的上传下载

    将FileActionForm直接作为业务层的接口入参,相当于将Web层传播到业务层中去,即将业务层绑定在特定的Web层实现技术中,按照分层模型学院派的观点,这是一种反模块化的设计,但在"一般"的业务系统并无需提供多种UI...

    java面试题

    Struts1只是在第一次请求的时候创建一个action实例,以后每次相同的请求都直接从内存中去读取,它是单例模式,安全性较差。 Struts2是如何实现MVC模式的? 答:在Struts2里面是将每次页面的请求进行处理,然后将请求...

    java 面试题 总结

    但EJB必须被布署在诸如Webspere、WebLogic这样的容器中,EJB客户从不直接访问真正的EJB组件,而是通过其容器访问。EJB容器是EJB组件的代理,EJB组件由容器所创建和管理。客户通过容器来访问真正的EJB组件。 21、...

    超级有影响力霸气的Java面试题大全文档

    但EJB必须被布署在诸如Webspere、WebLogic这样的容器中,EJB客户从不直接访问真正的EJB组件,而是通过其容器访问。EJB容器是EJB组件的代理, EJB组件由容器所创建和管理。客户通过容器来访问真正的EJB组件。 24、...

    flash shiti

    42.图形文件中,哪几种格式的矢量图能被Flash直接引用? A. *.ai B. *.eps C. *.cdr D. *.wmf 43.下图中哪几项可以打开平滑与整平工具? A. 从附属选项中挑选 和 钮 B. 从附属选项中挑选 和 钮 C. 选取...

    strust文件上传

    //得到是字节数,即byte,我们可以直接用file.getFileSize(),也可以在创建读取对象时用streamIn.available(); // int ok=streamIn.available(); int ok=file.getFileSize(); String strFee = null; //这个地方...

    新版Android开发教程.rar

    也有分析认为,谷歌并不想做一个简单的手机终端制造商或者软件平台开发商,而意在一统传统互联网和 移 动互联网。----------------------------------- Android 编程基础 4 Android Android Android Android 手机新...

Global site tag (gtag.js) - Google Analytics