论坛首页 Java企业应用论坛

将所有的URL指向action

浏览 12728 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (1)
作者 正文
   发表时间:2010-09-17   最后修改:2010-09-19

刚刚开始学习Struts2。有个问题不明白~

《Struts2 深入详解》 写道
在Struts2开发中,将所有的URL都指向action,而不是直接指向JSP页面,这是一种非常好的实践方式,因为这样可以利用Struts2控制器所提供的功能。

 

那么,在实际编程中,以下两种方式又有何区别?方式2比方式1好在哪里?

  • 方式1:

直接访问

.../index.jsp

 

  • 方式2:

访问URL设定为

.../index.action

 

struts.xml中配置

<action name="index">

        <result>index.jsp</result>

     </action>

 

 

另外,在index.jsp里点击“登陆”,以下两种方式又有何区别?

  • 方式1:

在index.jsp中

<a href ="userLogin.jsp">

 

  •  方式2:

在index.jsp中

<a href ="login">登陆</a>

 

在struts.xml中配置

<action name="login">

        <result>userLogin.jsp</result>

</action>

   发表时间:2010-09-17  
直接访问jsp是访问到你的jsp页面。访问.action是访问到你的action,然后根据你的配置 跳转到相应的jsp
0 请登录后投票
   发表时间:2010-09-17  
我觉得这两种方式的最大不同时转向action可以完全将界面和功能分离,可以更加深刻的突出action的中间转换器作用。
0 请登录后投票
   发表时间:2010-09-17  
紫烟水晶 写道
我觉得这两种方式的最大不同时转向action可以完全将界面和功能分离,可以更加深刻的突出action的中间转换器作用。


那么,我可不可以说,

在整个流程中,都是在action和action之间进行互通,
jsp就只是用来显示结果的,即在配置上都是由<result>来指向jsp,
而一般不出现由jsp指向action这种情况?

如果是这样的话,如果我要提交数据,比如在jsp页面登录,要将username和password提交给
action进行处理,这算不算没有将界面和功能分离啊~?
0 请登录后投票
   发表时间:2010-09-17  
我所说的功能是对数据的处理以及页面的跳转,这如你所说的JSP知识用来显示,显示action的处理结果,你说的又是话,我不太明白,例如:而一般不出现由jsp指向action这种情况?
0 请登录后投票
   发表时间:2010-09-17  
紫烟水晶 写道
我所说的功能是对数据的处理以及页面的跳转,这如你所说的JSP知识用来显示,显示action的处理结果,你说的又是话,我不太明白,例如:而一般不出现由jsp指向action这种情况?


我以为jsp就只用于显示最终结果上,中间不出现它了...
所以说,不出现jsp指向action,呵呵,想法狭隘了。

其实,应该是在jsp中不出现任何的业务处理逻辑,所有的功能都在action中完成。
而jsp只负责显示数据、传递参数、以及定向到action,对吧?
0 请登录后投票
   发表时间:2010-09-17  
一个是V,一个是C,你懂的
0 请登录后投票
   发表时间:2010-09-17  
这就好比Java中为什么用setter,getter而不是直接放一个public attribute。
比如
private name;
String getName(){
return name;
}
看起来和
public name;
没什么区别,但如果哪天你突然希望返回的name能自动大写,那么前者改起来就方便多了。
同理,即使一个action现在什么都不作,只是redirect到jsp,但你不知道哪天会在里面干点私活啥的,这时候指向action你就可以对外透明的修改,而直接指向jsp,难道你在View里面加这些逻辑?

1 请登录后投票
   发表时间:2010-09-18  
restful 风格的返回结果才是以后的方向
0 请登录后投票
   发表时间:2010-09-18   最后修改:2010-09-18
我使用action替代jsp,因为以下几点
1 利用mvc框架进行访问拦截,可以做很多事情,比如记录访问路径,设置配置数据
2 对于struts2的标签来说,很多不经过mvc框架而直接访问jsp的话很多不能用

至于其他的项目里面,应该不是单纯为了突出mvc或为了业务和显示分离而使用此方式的吧,有时是mvc框架需要而使用的
1 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics