基于mvc模式的应用框架之struts(二)
2017-12-16 20:07
501 查看
一、Action类的三种写法
1.既不继承也不实现,普通方法
代码:public class UserAction { private String userName; public void setUserName(String userName) { this.userName = userName; } public String login() { System.out.println("UserAction.login()" + userName); return "login"; } public String register() { System.out.println("register()" + userName); return "register"; } }
2.继承自ActionSupport
代码:public class UserAction extends ActionSupport { public String login() { System.out.println("UserAction.login()"); return SUCCESS; } }
3.实现Action类
代码:public class UserAction implements Action { public String login() { System.out.println("UserAction.login()"); return "success"; } @Override public String execute() throws Exception { return null; } }
二、Struct 2.0中的通配符
在下面的代码中,*表示传过来的参数通配符,{1}的值和*的值一样。
<action name="down_*" class="cn.itcast.e_fileupload.DownAction" method="{1}">
三、Struct 2.0中的常量与路径
1.Struts2中常用的常量
指定默认编码集,作用于HttpServletRequest的setCharacterEncoding方法 和freemarker 、velocity的输出<constant name="struts.i18n.encoding" value="UTF-8"/>
自定义后缀修改常量
<constant name="struts.action.extension" value="do"/>
设置浏览器是否缓存静态内容,默认值为true(生产环境下使用),开发阶段最好关闭
<constant name="struts.serve.static.browserCache" value="false"/>
当struts的配置文件修改后,系统是否自动重新加载该文件,默认值为false(生产环境下使用),开发阶段最好打开
<constant name="struts.configuration.xml.reload" value="true"/> 开发模式下使用,这样可以打印出更详细的错误信息 <constant name="struts.devMode" value="true" />
默认的视图主题
<constant name="struts.ui.theme" value="simple" />
与spring集成时,指定由spring负责action对象的创建
<constant name="struts.objectFactory" value="spring" />
该属性设置Struts 2是否支持动态方法调用,该属性的默认值是true。如果需要关闭动态方法调用,则可设置该属性为 false
<constant name="struts.enable.DynamicMethodInvocation" value="false"/>
上传文件的大小限制
<constant name="struts.multipart.maxSize" value=“10701096"/>
2.Struts2中指定多个配置文件
3.Struts2的Action名称搜索机制
1、获得请求路径的URI,例如url是:/Struts2_01/hello_a/a/b/helloWorld.action
2、首先查询namespace为/hello_a/a/b的package,
如果存在这个package,则在这个package中查询名字为helloWorld的
action,如果不存在这个package则转步骤3
3、查询namespace为/hello_a/a的package,
如果存在这个package,则在这个package中寻找名字为helloWorld的
action,如果不存在这个package,则转步骤4
4、查询namespace为/hello_a的package,
如果存在这个package,则在这个package中寻找名字为helloWorld的
action,如果仍然不存在这个package,则转步骤5
5、查询默认的namaspace的package
查询名字为helloWorld的action(默认的命名空间为空字符串“/” )
如果还是找不到,页面提示404找不到action的异常。
相关文章推荐
- 基于mvc模式的应用框架之struts(一)
- 基于MVC模式的应用框架之struts
- 基于mvc模式的应用框架之struts
- 基于mvc模式的应用框架之Hibernate(二)
- 基于mvc模式的应用框架之Hibernate(六)
- 基于mvc模式的应用框架之spring(三)
- 基于mvc模式的应用框架之struts2(一)---Struts2的执行流程和原理
- 基于mvc模式的应用框架之Hibernate(四)
- 基于mvc模式的应用框架之spring(一)
- struts采用JavaServlet/JSP技术,实现了基于Java EEWeb应用的MVC设计模式的应用框架
- 基于mvc模式的应用框架之Hibernate(一)
- struts采用JavaServlet/JSP技术,实现了基于Java EEWeb应用的MVC设计模式的应用框架
- 基于MVC的应用框架之Struts前奏
- 基于mvc模式的应用框架之Hibernate(七)
- 基于mvc模式的应用框架之spring(二)
- 基于mvc模式的应用框架之Hibernate(三)
- 基于mvc模式的应用框架之Hibernate(五)
- 基于mvc模式的应用框架之struts2(一)----开发入门
- 对基于Lua和Nginx的iOS应用数据的加密框架