Struts2的用法之二
来源:互联网 发布:淘宝商家怎么做活动 编辑:程序博客网 时间:2024/06/05 06:41
Action的几种开发模式
1、写一个类继承ActionSupport,可以使用这个类的一些功能
2、写一个类实现Action接口,重写execute方法,不能使用ActionSupport中定义的方法
3、既不继承也不实现,直接在该类中编写一个方法处理我们的逻辑,什么功能也不能实现
struts的通配符
<action name="user_*_*" class="" method={1}"><result name="{1}">/{2}.jsp</result></action>
struts的路径匹配
namespace=”/”默认的命名空间
namespace=”/a”自定义的命名空间
localhost:8080/项目名/a 访问路径
匹配原则
如果是localhost:8080/项目名/a/b/c这样的路径,那么它的查找方法如下
*/a/b/c
*/a/b
*/a
struts的常量使用
找到default.properties文件
修改里面的常量
<!--这个就是表示的上传文件的大小的最大值--> <constant name="struts.multipart.maxSize" value="123456789"></constant> <!--设置的是struts的编码--> <constant name="struts.i18n.encoding" value="UTF-8"></constant> <!--设置的是struts默认的访问后缀 value="action的时候表示的是后缀必须是action 否则访问不到" value="action,do":表示后缀只能是action或者do不能是其他的 value="action,do,":表示后缀可以是action或者do或者没有后缀 --> <constant name="struts.action.extension" value="action,do,"></constant> <!--允许动态方法的调用 动态方法就是在actionName的基础上直接加上!再加上方法名 这样直接去指定执行某一个方法 就叫做动态方法 --> <constant name="struts.enable.DynamicMethodInvocation" value="true"></constant> <!--xml改变之后自动的加载文件--> <constant name="struts.configuration.xml.reload" value="true"></constant>
struts的默认配置
全局结果集(原则局部优先)
<global-results> <result name="success">/index.jsp</result> </global-results>
由于struts-default有默认action配置
<default-class-ref class="com.opensymphony.xwork2.ActionSupport" />
action可省略类和方法
struts的数据处理
1、通过Servlet的API去完成数据放置到域对象中
(问题产生struts与servlet耦合问题)
HttpServletRequest request = ServletActionContext.getRequest(); HttpSession session = request.getSession(); ServletContext application = ServletActionContext.getServletContext(); //向域对象里面添加数据 request.setAttribute("request_","这里是request对象的数据"); session.setAttribute("session_","这里是session对象的数据"); application.setAttribute("application_","这里是application对象的数据");
2通过ActionContext去获取域对象
ActionContext context = ActionContext.getContext(); //通过实例获取域对象 Map<String, Object> session = context.getSession(); Map<String, Object> application = context.getApplication(); Map<String, Object> request = context.getContextMap(); //向域对象里面添加数据 session.put("session_", "Session的数据"); request.put("request_", "resuest的数据"); application.put("application_", "application的数据");
3、通过实现RequestAware 或者 SessionAware 或者 ApplicationAware来实现将数据放到域对象中去
*并且设置三个字段的set方法*struts自动帮我们注入域对象中去
这个方法可以作为基类
public class CustomAction extends ActionSupport implements RequestAware,SessionAware,ApplicationAware{private Map<String, Object> application;private Map<String, Object> session;Map<String, Object> request;}
struts的数据自动封装
1、创建javabean对象
2、创建一个类继承ActionSupport
在这个类中写
方法一、set方法注入注意以前的版本的注入方式:
采用构造方法的方式(eclipse中)
private User user=new User();
当前版本的注入方式(MyEclipse):
private User usepublic void setUser(User user) { this.user = user;}public User getUser() { return user;}
日期类型的转换器
写一个类继承StrutsTypeCover
重新方法
convertFromString:将字符串转换成其他的类型
convertToString:将其他的类型转换成字符串
编写配置文件
1、 配置文件名称必须是 ActionName-conversion.properties
格式 java.util.Date=action全路径
2、配置文件的内容:转换器的属性 JavaBean对象.属性
3、配置文件必须位于Action同目录下
- Struts2的用法之二
- struts2的一些用法(二):类型转换
- struts2系列十二之DefaultAction的用法
- struts2系列二之namespace 的使用
- Struts2文件的上传、下载之二
- Struts2的学习之路(二)
- Struts2之Ognl用法
- Struts2之ModelDriven用法
- struts2总结之二
- struts2 之二
- 框架之struts2(二)
- Coldfusion: customtag的一个用法之二。
- Intent系列之二:startActivityForResult()的用法
- STL之vector的用法二
- File的用法二:文件过滤器之FileNameFilter的用法
- struts2的基本用法
- struts2 OGNL $ % *的用法
- struts2的通配符用法
- opencv 入门基础
- 文件描述符和文件指针、标准I/O流和不带缓冲的I/O流的区别
- 用ES6 Generator替代回调函数
- Toolbar踩坑指南
- 异常问题:java.sql.SQLException: Column count doesn't match value count at row 1
- Struts2的用法之二
- 【深度学习】---行人检测应用
- WebDriver Selenium eclipse环境搭建
- 521. Longest Uncommon Subsequence I的C++解法
- Collections集合框架工具类
- LeetCode#6. ZigZag Conversion
- 深入解析MySQL分区(Partition)功能
- CH340驱动(含各平台)
- 5杀电影 walker 的评分8.0以上的电影