struts2类型转换
来源:互联网 发布:淘宝达人账号简介 编辑:程序博客网 时间:2024/05/19 21:17
struts2类型转换
基于ongl的类型转换
配置struts.xml
<?xml version="1.0"encoding="gbk"?>
<!DOCTYPE struts PUBLIC
<struts>
<!-- 设置Web应用的默认编码集为gbk -->
<constant name="struts.i18n.encoding"value="gbk" />
<!-- 设置Web应用的默认Locale为zh_CN-->
<constant name="struts.locale" value="zh_CN"/>
<!-- 设置Struts2.1应用的国际化资源文件,多个文件中间可用逗号分隔-->
<constant name="struts.custom.i18n.resources"value="MessageResource,globalMessage" />
<!--设置Struts2.1应用是否处于开发模式,通常在开发调试阶段设为true,正式上线后可设为false-->
<constant name="struts.devMode" value="true"/>
<!-- 设置Struts2.1的默认主题为simple-->
<constant name="struts.ui.theme" value="simple"/>
<!-- 设置上传文件临时文件夹 -->
<constant name="struts.multipart.saveDir"value="/tmp" />
<package name="book" extends="struts-default"namespace="/">
<!-- 类型转换 start -->
<action name="convertType"class="com.book.struts.action.ConverTypeAction">
<result>convertSuccess.jsp</result>
</action>
<action name="convert" >
<result>convertType.jsp</result>
</action>
</struts>
<!-----------------------------------建立一个pojo类User.java--------------------------------------------------->
package com.pojo;
public class User {
private String name;
private String passWord;
private int id;
private String loginName;
public User(String name,String passWord){
this.name = name;
this.passWord = passWord;
}
public User(){}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassWord() {
return passWord;
}
public void setPassWord(String passWord) {
this.passWord = passWord;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getLoginName() {
return loginName;
}
public void setLoginName(String loginName) {
this.loginName = loginName;
}
}
<!------------------------------------配置ActionConverTypeAction.java---------------------------------->
package com.book.struts.action;
import com.opensymphony.xwork2.ActionSupport;
import com.pojo.User;
@SuppressWarnings("serial")
public class ConverTypeAction extends ActionSupport {
private User user;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
@Override
public String execute() throws Exception {
if(getUser().getName().equals("michael")&&getUser().getPassWord().equals("123")){
return SUCCESS;
}
return INPUT;
}
}
<!---------------------------------------类型转换页面convertType.jsp--------------------------------------->
<%@ page language="java" import="java.util.*"pageEncoding="gbk"%>
<%@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.01Transitional//EN">
<html>
<head>
<basehref="<%=basePath%>">
<title>AddUser</title>
</head>
<body>
<form action="convertType" method="post">
<table>
<tr>
<tr>
</table>
</form>
</body>
</html>
<!--------------------------------------------成功页面convertSuccess.jsp-------------------------------------------------->
<%@ page language="java" import="java.util.*"pageEncoding="gbk"%>
<%@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.01Transitional//EN">
<html>
<head>
<basehref="<%=basePath%>">
<title>AddUser</title>
</head>
<body>
<table>
<tr>
</table>
</body>
</html>
<!-====================================================>
部署运行程序会 在用户名框上填 michael 密码框填123
会看到结果为:mchael 123 正常的结果
这是struts2 内置的类型转换器将字符串类型请求参数转换为复合类型
但是我想在一个用户名文本框中填写michael,123这样的字符串,
而想要的结果是和上面程序运行的结果一样,这时我们就要自定义类型转换
<!----------------------------------转换类型的jsp convertType.jsp------------------------------------------->
<%@ page language="java" import="java.util.*"pageEncoding="gbk"%>
<%@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.01Transitional//EN">
<html>
<head>
<basehref="<%=basePath%>">
<title>AddUser</title>
</head>
<body>
<form action="convertType" method="post">
<table>
<tr>
<tr>
</table>
</form>
</body>
</html>
<!----------------------------------自定义类型转换类UserConvert.java-------------------------------------->
package com.book.struts.action;
import java.util.Map;
import org.apache.struts2.util.StrutsTypeConverter;
import com.pojo.User;
public class UserConvert extends StrutsTypeConverter{
@Override
public Object convertFromString(Map arg0, String[] arg1, Classarg2) {
User user = new User();
String[] params = arg1[0].split(",");
user.setName(params[0]);
user.setPassWord(params[1]);
return user;
}
@Override
public String convertToString(Map arg0, Object arg1) {
User user = (User)arg1;
return"<"+user.getName()+","+user.getPassWord()+">";
}
}
<!------------------------------注册全局类型转换器-------------------------------->
在src目录下建一个xwork-conversion.properties文件
<!------------------xwork-conversion.properties-------------------------->
#指定com.pojo.User类型需要
#指定类型转换机制com.book.struts.action.UserConvert
com.pojo.User=com.book.struts.action.UserConvert
<!--------------------------end------------------------------------------------------>
运行程序在用户名框中填写 michael,123
程序正常运行结果是
用户名:michael
密码:123
注意在convertType.jsp中的用户名参数名为user而不是user.name
把UserConvert.java放在和ConverTypeAction.java同一目录下
- 【Struts2】:Struts2的类型转换
- struts2类型转换
- struts2类型转换续
- Struts2的类型转换
- struts2 类型转换流程
- Struts2中的类型转换
- [struts2]类型转换笔记
- struts2的类型转换
- Struts2之类型转换
- struts2的类型转换
- struts2 类型转换
- struts2 类型转换
- Struts2类型转换
- struts2日期类型转换
- struts2类型转换
- Struts2类型转换
- Struts2的类型转换
- Struts2日期类型转换
- el表达式
- Struts2的Stack Context和ValueStack
- spring一些知识
- 黑马程序员——GUI
- [自学问题总结]静态成员和非静态成员的区别
- struts2类型转换
- struts2标签不显示Label属性
- jsp自定义标签
- poj 2033 Alphacode
- Filter与Servlet的区别
- struts2 Action访问Servlet Api
- oracle使用汉字首字母查询函数
- IFrame下父页面调用子页面的JS方法
- 去除空格的js 和 使用正…