Struts基于对象的类型转换
一 视图
1 input.jsp
<%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %>
<%@taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>利用OGNL的进行类型转换</title>
</head>
<body>
<h3>利用OGNL的进行类型转换</h3>
<s:form action="login">
<!-- 该表单域封装的请求参数名为user.name -->
<s:textfield name="user.name" label="用户名"/>
<!-- 该表单域封装的请求参数名为user.pass -->
<s:textfield name="user.pass" label="密码"/>
<tr>
<td colspan="2"><s:submit value="转换" theme="simple"/>
<s:reset value="重填" theme="simple"/></td>
</tr>
</s:form>
</body>
</html>
2 welcome.jsp
<%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %>
<%@taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>转换结果</title>
</head>
<body>
<s:actionmessage/>
用户名为:<s:property value="user.name"/><br/>
密码为:<s:property value="user.pass"/><br/>
</body>
</html>
二 配置文件
<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<package name="lee" extends="struts-default">
<action name="login" class="org.crazyit.app.action.LoginAction">
<result>/WEB-INF/content/welcome.jsp</result>
<result name="error">/WEB-INF/content/welcome.jsp</result>
</action>
<action name="*">
<result>/WEB-INF/content/{1}.jsp</result>
</action>
</package>
</struts>
三 领域类
package org.crazyit.app.domain;
public class User
{
private String name;
private String pass;
// name的setter和getter方法
public void setName(String name)
{
this.name = name;
}
public String getName()
{
return this.name;
}
// pass的setter和getter方法
public void setPass(String pass)
{
this.pass = pass;
}
public String getPass()
{
return this.pass;
}
}
四 action
package org.crazyit.app.action;
import com.opensymphony.xwork2.ActionSupport;
import org.crazyit.app.domain.*;
public class LoginAction extends ActionSupport
{
// 使用User类型的成员变量封装请求参数
private User user;
private String tip;
// user的setter和getter方法
public void setUser(User user)
{
this.user = user;
}
public User getUser()
{
return this.user;
}
public String execute() throws Exception
{
// 通过user的name属性和pass属性来判断控制逻辑
if (getUser().getName().equals("crazyit.org")
&& getUser().getPass().equals("leegang") )
{
addActionMessage("登录成功");
return SUCCESS;
}
addActionMessage("登录失败!!");
return ERROR;
}
}
五 测试
还没有评论,来说两句吧...