![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
关于学习struts2的一些困惑 10
我也是刚学习struts2不久,看见很多人还是直接请求jsp页面,然后用什么<s:action>标签将action的结果包含进来,说这样可以分模块编程。老师也是这样写。而...
我也是刚学习struts2不久,看见很多人还是直接请求jsp页面,然后用什么<s:action>标签将action的结果包含进来,说这样可以分模块编程。老师也是这样写。
而action作为控制器,我觉得应该是让用户直接请求控制器吧?这样才符合MVC架构的思想,可以把jsp放在WEB-INF下,让用户不能访问,然后struts将该页面传递给用户。
还有就是<s:action>标签,你们在平时的项目中用的多吗?我在写项目时一般总是一个页面只从一个action中取数据,因为业务逻辑组件由spring管理,都是单例,所以只需调用然后把结果放入值栈中就行。如果一个页面之中包含多个action,那么当请求一个action页面时spring得同时实例化多个action,这样运行效率不就低了吗?对于页面中的每一个模块该怎么做呢? 展开
而action作为控制器,我觉得应该是让用户直接请求控制器吧?这样才符合MVC架构的思想,可以把jsp放在WEB-INF下,让用户不能访问,然后struts将该页面传递给用户。
还有就是<s:action>标签,你们在平时的项目中用的多吗?我在写项目时一般总是一个页面只从一个action中取数据,因为业务逻辑组件由spring管理,都是单例,所以只需调用然后把结果放入值栈中就行。如果一个页面之中包含多个action,那么当请求一个action页面时spring得同时实例化多个action,这样运行效率不就低了吗?对于页面中的每一个模块该怎么做呢? 展开
展开全部
首先,你无法确定使用一个<s:action>标签就会实例化一个action,这个和struts也没有关系,而是和spring bean的配置有关系;
其次,写<s:action>标签和请求一个后台的Action类是一样的,不存在什么效率问题;
第三,之所以在界面写<s:action>的标签是为了方便的简单复用。
最简单的,比如数据字典的转换,后台查出来的是1,2,jsp界面要显示男或者女,用一个<s:action>就可以封装这个逻辑(包括前台和jsp生成的html及样式等);
如果你的jsp界面中有许多个部分组成,每个部分都相互独立,功能单一,就会出现多个<s:action>标签。
这样做的好处是,如果有一个逻辑和界面修改了,只许要改对应action和对应的jsp,而不需要改用到这个逻辑的许多许多的JSP,不仅封装了逻辑,而且封装了界面的内容和样式;
其次,写<s:action>标签和请求一个后台的Action类是一样的,不存在什么效率问题;
第三,之所以在界面写<s:action>的标签是为了方便的简单复用。
最简单的,比如数据字典的转换,后台查出来的是1,2,jsp界面要显示男或者女,用一个<s:action>就可以封装这个逻辑(包括前台和jsp生成的html及样式等);
如果你的jsp界面中有许多个部分组成,每个部分都相互独立,功能单一,就会出现多个<s:action>标签。
这样做的好处是,如果有一个逻辑和界面修改了,只许要改对应action和对应的jsp,而不需要改用到这个逻辑的许多许多的JSP,不仅封装了逻辑,而且封装了界面的内容和样式;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询