var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-20738293-1']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script')"/>
jutleo
欢迎走进有风的地方~~
BlogJava
首页
新文章
新随笔
聚合
管理
posts - 63, comments - 279, trackbacks - 0
Struts2表单请求流程(二)— Struts2高级的POJO访问
此文主要来自
www.blogjava.net/Max
的实例
Struts 2.0
支持更高级的
POJO
访问,先定义一个
User.java
类。把
username
和
password
属性,从
Login
类中分离出来,它可以使系统结构更清晰,对开发多层系统尤其有用。
User.java
package
com.bulktree.struts2;
public
class
User
{
private
String username;
private
String password;
public
String getUsername()
{
System.out.println(
"
******getUsername()******
"
);
return
username;
}
public
void
setUsername(String username)
{
System.out.println(
"
*******setUsername()********
"
);
this
.username
=
username;
}
public
String getPassword()
{
System.out.println(
"
******getPassword()*******
"
);
return
password;
}
public
void
setPassword(String password)
{
System.out.println(
"
******setPassword()*********
"
);
this
.password
=
password;
}
}
login2.jsp
<
s:form action
=
"
login2
"
method
=
"
post
"
>
<
s:textfield name
=
"
user.username
"
label
=
"
USERNAME
"
tooltip
=
"
Enter Your UserName
"
></
s:textfield
>
<
s:password name
=
"
user.password
"
label
=
"
PASSWORD
"
tooltip
=
"
Enter Your PassWord
"
></
s:password
>
<
s:submit label
=
"
login
"
></
s:submit
>
</
s:form
>
struts.xml文件中action配置:
<
action
name
="login2"
class
="com.bulktree.struts2.LoginAction2"
>
<
result
name
="success"
>
/welcome.jsp
</
result
>
<
result
name
="input"
>
/login2.jsp
</
result
>
</
action
>
LoginAction2.java:
package
com.bulktree.struts2;
import
com.opensymphony.xwork2.ActionSupport;
public
class
LoginAction2
extends
ActionSupport
{
private
User user;
private
String message;
public
void
setUser(User user)
{
System.out.println(
"
********setUser()***********
"
);
this
.user
=
user;
}
public
User getUser()
{
System.out.println(
"
*********getUser()*************
"
);
return
user;
}
public
String getMessage()
{
System.out.println(
"
************getMessage()********
"
);
return
message;
}
@Override
public
String execute()
throws
Exception
{
System.out.println(
"
*****execute()******
"
);
if
(
"
bulktree
"
.equals(user.getUsername())
&&
"
oakertree
"
.equals(user.getPassword()))
{
message
=
"
Welcome,
"
+
user.getUsername();
}
else
{
message
=
"
Error!
"
;
}
return
ActionSupport.SUCCESS;
}
@Override
public
void
validate()
{
System.out.println(
"
******validate()******
"
);
if
(
null
==
user.getUsername()
||
user.getUsername().length()
<
5
)
{
this
.addFieldError(
"
username
"
,
"
USERNAME ERROR
"
);
}
if
(
null
==
user.getPassword()
||
user.getPassword().length()
<
5
)
{
this
.addFieldError(
"
password
"
,
"
PASSWORD ERROR
"
);
}
}
}
welcome.jsp:
YOUR USERNAME:
<
FONT size
=
"
5
"
color
=
"
red
"
><
s:property value
=
"
user.username
"
/></
FONT
><
br
>
YOUR PASSWORD:
<
FONT size
=
"
5
"
color
=
"
red
"
><
s:property value
=
"
user.password
"
/></
FONT
><
br
>
控制台输出及分析:
*********
getUser()
*************
//
得到User类的实例
********
setUser()
***********
//
执行setUser(),准备赋值操作
******
setPassword()
*********
//
set赋值操作,此时是真正的赋值
*********
getUser()
*************
//
得到User类的实例
*******
setUsername()
********
//
set赋值操作,此时是真正的赋值
以上有struts2框架自动执行
******
validate()
******
//
表单验证
******
getUsername()
******
//
表单验证时调用get方法(判断username)
******
getUsername()
******
//
表单验证时第二次调用get方法(判断username)
******
getPassword()
*******
//
表单验证时调用get方法(判断password)
******
getPassword()
*******
//
表单验证时第二次调用get方法(判断password)
*****
execute()
******
//
业务逻辑
******
getUsername()
******
//
调用get方法
******
getPassword()
*******
//
调用get方法
一下由Struts2框架自动执行
*********
getUser()
*************
//
得到User类的实例
******
getUsername()
******
//
自动执行get方法
********
getUser()
*************
//
得到User类的实例
******
getPassword()
*******
//
自动执行get方法
我们可以把类的属性分离出来实现系统架构清晰、明了。
posted on 2007-12-29 20:20
凌晨风
阅读(2869)
评论(0)
编辑
收藏
所属分类:
Java学习笔记
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
Chat2DB
C++博客
博问
管理
相关文章:
Struts2整合JasperReport预览HTML格式不显示图片问题解决方案
Log4j的使用
dom4j操作xml基础--Visitor访问模式解析XML
Visitor访问者模式---------学习dom4j时遇到的顺便拿来交流
office javaScript调试工具
java截取字符串的一些常用处理
JFreeChart简单使用
用commons-email-1.1.jar实现发邮件功能:
Struts2表单请求流程(二)— Struts2高级的POJO访问
Struts2表单请求流程(一)
<
2007年12月
>
日
一
二
三
四
五
六
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(11)
给我留言
查看公开留言
查看私人留言
我参与的团队
分享.学习.交流团队(0/0)
西安java用户群(0/0)
深圳Java俱乐部(0/0)
西安JAVA俱乐部(0/0)
随笔分类
BlackBerry(6)
DATABSE(1)
iReport + JasperReport 系列(15)
Java学习笔记(29)
Spring/Hibernate/Struts2(3)
操作系统的一些解决方案(2)
源码备份
生活感悟(4)
随笔档案
2011年1月 (7)
2010年4月 (1)
2009年12月 (2)
2009年10月 (2)
2008年12月 (12)
2008年8月 (6)
2008年4月 (4)
2008年3月 (1)
2008年1月 (1)
2007年12月 (20)
2007年11月 (6)
文章分类
系统的一些解决方案(1)
文章档案
2007年11月 (1)
新闻分类
Program Information
一些转载的经典(2)
新闻档案
2007年12月 (1)
2007年11月 (1)
收藏夹
CSS+JavaScript(1)
DATEBSE
J2EE/Jsp/Servlet
Java基础知识
Struts2
设计模式
围脖
最新随笔
1. 黑莓开发学习入门系列,自己动手实现一个日历软件(六)
2. 黑莓开发学习入门系列,自己动手实现一个日历软件(五)
3. 黑莓开发学习入门系列,自己动手实现一个日历软件(四)
4. 黑莓开发学习入门系列,自己动手实现一个日历软件(三)
5. 黑莓开发学习入门系列,自己动手实现一个日历软件(二)
6. 黑莓开发学习入门系列,自己动手实现一个日历软件(一)
7. 2010年终总结
8. 离职了
9. iReport+jasperReport之客户端打印 (续二) ----数字签名
10. iReport+jasperReport之客户端打印 (续)
搜索
最新评论
1. re: iReport+jasperReport之图片控件[未登录]
你好,我也是用的这个来操作的。其他图片可以,扫描件放上去就报错,这是为什么呢?
--你好
2. re: iReport+jasperReport之BEAN数据源[未登录]
@凌晨风
瞎说,是可以遍历所有燃素,但不能改变属性,因为一旦模板本件确定,就无法改,只能改变其中的值
--hh
3. re: iReport+jasperReport之CSV、XML数据源
@李岩风
我这里也没有 好多年前的事情了,QQ:jutleo@gmail.com,可以私聊。
--凌晨风
4. re: iReport+jasperReport之CSV、XML数据源
@凌晨风
能给个地址吗
--李岩风
5. re: iReport+jasperReport之CSV、XML数据源
@李岩风
建议你看一下jasperReport自带的例子
--凌晨风
阅读排行榜
1. 用commons-email-1.1.jar实现发邮件功能:(24653)
2. iReport+jasperReport之图片控件(12228)
3. Struts2中select/doubleselect标签数据显示(10402)
4. iReport+jasperReport之JFreeChart(图表报表)(8981)
5. Spring2.5.3+Hibernate3.2+Struts2.0.11整合(8396)
评论排行榜
1. 去北京面试时的题目(老师生日)微软面试题(28)
2. iReport+jasperReport概念的澄清(续)(23)
3. JDK5增强for循环的使用(21)
4. Spring2.5.3+Hibernate3.2+Struts2.0.11整合(20)
5. iReport+jasperReport之CSV、XML数据源(19)