struts2--(局部)自定义类型转换
来源:互联网 发布:sql inset 编辑:程序博客网 时间:2024/06/08 08:06
(局部)类型转换的基本流程:
提交表单
struts.xml查找action
Action类根据表单中的name属性调用set方法将值赋给对应的属性,调用每个属性之前,检查又没有定义这个类型的自定义类型转换
如果没有,则根据默认的规则转换;如果有,则检查在同一目录下,有木有资源文件存在
到自定义转换类中,检查转换的方向,返回对象
到Action中,将返回的对象,set到对应属性中
执行execute()方法
根据struts.xml文件中,result的值找到要转到的页面
页面中有,再到Action类中,寻找get方法,直接把值放到输出框中
当找到自定义类型时,又会寻找自定义类型转换类,检查转换方向,返回对象
显示到页面
做类型转化时,需要注意:
*-conversion.properties需要和Action放到一个包下,*代表Action的类名
其内容为:要转换的对象=自定义转换类具体地址
案例:
登录index.jsp页面:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%@ taglib prefix = "s" uri = "/struts-tags"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>"> <title>My JSP 'index.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> <s:form action = "login" method = "post"> <s:textfield name = "user" label = "用户名及密码"></s:textfield> <s:submit value = "提交"></s:submit> </s:form> </body></html>Action:
package com.action;import com.bean.User;import com.opensymphony.xwork2.ActionSupport;public class LoginAction extends ActionSupport{ private User user; private String massage ; public String execute() { this.setMassage("用户名:"+user.getUsername()+" 密码:"+user.getPassword());return SUCCESS;} public User getUser() {return user;}public void setUser(User user) {this.user = user;}public String getMassage() {return massage;}public void setMassage(String massage) {this.massage = massage;}}
javabean:
package com.bean;public class User { private String username ; private String password ;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;} }
结果界面ok.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%@ taglib prefix = "s" uri = "/struts-tags" %><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>"> <title>My JSP 'ok.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> <s:property value = "user"/> </body></html>
package com.converter;import java.util.Map;import com.bean.User;import com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter;public class UserConverter extends DefaultTypeConverter{ public Object convertValue(Map<String, Object> context, Object value, Class toType) { System.out.println("yes"); if(toType == User.class){ String[] user = (String[])value; String[] user0 = user[0].split(","); User u = new User(); u.setUsername(user0[0]); u.setPassword(user0[1]); return u; } else if(toType == String.class){ User user = (User)value; return "用户名:"+user.getUsername()+" 密码:"+user.getPassword()+"!"; } return null; }}
struts.xml配置:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN" "http://struts.apache.org/dtds/struts-2.1.7.dtd"><struts> <package name="defalut" namespace = "/" extends = "struts-default"> <action name="login" class = "com.action.LoginAction"> <result>/ok.jsp</result> </action> </package></struts>
user=com.converter.UserConverter
当然全局配置就很简单了。配置了全局的类型转换之后,就会对该javabean的所有实例起作用,配置如下xwork-conversion.properties:
com.bean.User=com.converter.UserConverter
阅读全文
0 0
- struts2--(局部)自定义类型转换
- struts2类型转换(局部类型转换)
- Struts2局部类型转换
- 自定义struts2类型转换的全局与局部错误信息。
- struts2自定义局部类型转换器
- struts2 自定义局部类型转换器
- 【Struts2】自定义局部类型转换器
- Struts2自定义类型转换
- struts2自定义类型转换
- Struts2自定义类型转换
- Struts2自定义类型转换
- struts2自定义类型转换
- struts2自定义类型转换
- struts2自定义全局和局部类型转换器
- Struts2 局部类型转换和全局类型转换实践
- struts2.x自定义类型转换
- Struts2 自定义日期类型转换
- struts2学习笔记(3)——struts2的局部类型转换
- GUI笔记
- 一个简单的磁盘挂载方式
- [机器学习入门] 李宏毅机器学习笔记-36(Ensemble part 2;集成方法 part 2)
- HDU 4662 MU Puzzle
- springcloud(三)
- struts2--(局部)自定义类型转换
- 1013. 数素数 (20)
- MaBatis框架
- 程序员笔试题之字符串(1)
- 递归实现打印12345---简单理解递归
- 提高Eclipse的速度,去掉对于工程的 Validatioan
- Java学习笔记 --- 反射机制
- Bootstrap Tree View从前端到后台的例子
- 零基础学习软件测试从懵逼到吊炸天之基础与进阶篇