Struts2中的类型转换器学习(升级版)
来源:互联网 发布:网络工作模式有哪些 编辑:程序博客网 时间:2024/06/05 17:17
原理
原理和我的另外一篇相同的一样。(此次是局部类型转换,全局请看另外一篇)
继承StrutsTypeConverter….之后重写方法
主要文件有以下:Convert.java、UserAction-conversion.properties、UserAction.java、User.java、type.jsp
解释:
UserAction.java 是测试用的Aciton
UserAction-conversion.properties是配置要转换类型的参数
Convert.java 是类型转换的核心
不多说,直接代码:
Convert.java
package cn.type;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Map;import org.apache.struts2.util.StrutsTypeConverter;public class Convert extends StrutsTypeConverter{ @Override public Object convertFromString(Map arg0, String[] arg1, Class arg2) { // TODO Auto-generated method stub System.out.print("类型转换器开启...date:"); if(arg1==null||arg2==null){ return null; } if(Date.class!=arg2){ return null; } System.out.println(arg1[0]+"class:"+arg2.toString()); SimpleDateFormat sdf =null; Date date=null; /* * 定义 Date类型数据能够转换的几种类型。 * yyyyMMdd必须要写全,如19860210 * */ /* * * 类型转换器开启...date:2016-07-02class:class java.util.Date usernmae: xiaoming password: date: 2015-12-7 0:00:00 */ String[] parse = new String[]{"yyyy-MM-dd","yyyy,MM,dd","yyyy/MM/dd","yyyyMMdd"}; for(String p :parse){ for(String str : arg1){ if(str!=null){ sdf= new SimpleDateFormat(p); try { date = sdf.parse(str); return date; } catch (Exception e) { // TODO: handle exception continue; } } } } return null; } @Override public String convertToString(Map arg0, Object arg1) { // TODO Auto-generated method stub return null; }}
UserAction-conversion.properties
user.date=cn.type.Convert
UserAction.java
package cn.type;import java.util.Map;import cn.entity.User;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;import com.opensymphony.xwork2.ModelDriven;import com.opensymphony.xwork2.util.ValueStack;public class UserAction extends ActionSupport { private User user = new User(); public User getUser() { return user; } public void setUser(User user) { this.user = user; } public String login(){ //值栈! 此是传入root根元素中。 ValueStack vs = ActionContext.getContext().getValueStack(); vs.set("username", user.getUsername()+" root"); System.out.println("usernmae: "+user.getUsername()); System.out.println("password: "+user.getPassword()); System.out.println("date: "+user.getDate().toLocaleString()); return "login"; } public String register(){ System.out.println("usernmae: "+user.getUsername()); System.out.println("password: "+user.getPassword()); System.out.println("date: "+user.getDate().toLocaleString()); return "debug"; }}
User.java
package cn.entity;import java.util.Date;public class User { private String username; private String password; private Date date; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public Date getDate() { return date; } public void setDate(Date date) { this.date = date; }}
type.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>My JSP 'model.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <h3>类型转换</h3> <p>类型转换的原理是:xml方式配合代码。代码继承StrutsTypeConverter</p> <form action="type_v1_loginAction" method="post"> 用户名:<input name="user.username" type="text"/><s:fielderror /><br/> 密码:<input name="user.password" type="password"><s:fielderror fieldName="password"/><br/> 日期:<input name="user.date" type="text"/><s:fielderror fieldName="date"/><br/> <input type="submit" value="提交"/> </form><br> <br/> El:{username:${username}}<br/> ognl:{root:<s:property value="username"/>、map栈:<s:property value="#request.username"/>}<br/> </body></html>
Struts.xml
<!-- 类型转换 --> <action name="type_v1_*Action" class="cn.type.UserAction" method="{1}"> <result name="success">/success.jsp</result> <result name="input">/type.jsp</result> <result name="login">/type.jsp</result> <result name="debug">/inpue.jsp</result> </action>
0 0
- Struts2中的类型转换器学习(升级版)
- Struts2中的类型转换器学习
- struts2中的类型转换器
- struts2中的自定义类型转换器
- struts2学习(二)--转换器StrutsTypeConverter和全局类型转换
- Struts2系统学习(8)自定义类型转换器
- Struts2学习笔记之自定义类型转换器
- Struts2学习笔记之自定义类型转换器
- Struts2 学习系列 (6) 类型转换器
- struts2学习笔记---------自定义类型转换器
- struts2学习笔记之二、struts2类型转换器
- 传智Struts2笔记(9)类型转换器
- (七)struts2之自定义类型转换器
- Struts2类型转换器配置
- Struts2的类型转换器
- Struts2的类型转换器
- struts2类型转换器概述
- Struts2的类型转换器
- list.insert()
- Linux:软件安装
- 网络爬虫(网络蜘蛛)之网页抓取
- R 数据读入
- 正则表达式的判断
- Struts2中的类型转换器学习(升级版)
- Hadoop MapReduce排序程序
- 相关记录(待整理)
- sdau-2 1011
- Android SDK目录下的各个文件夹的作用
- javaFX的一些简单类
- Noip2004普及组
- 北京林业大学“计蒜客”杯程序设计竞赛 网络赛 G. 易彰彪的一张表
- [每周一读]——不让时间偷走你的成功