struts2中用户提交表单到类型转换到输入校验的执行顺序(1)

summer_0571 2009-03-24 03:31:24
这几天在学struts2 想搞清楚整个程序的执行顺序

说明:在action类中和xml中都校验了,错误信息设置为action级,类型转化或者校验不通过返回输入页面并输出action级错误信息
配置文件不粘了,我在自己的机子上执行是成功的,大体顺序是知道 先提交然后类型转化 调用set方法为action中每个属性赋值,然后校验,校验成功调用get方法,输出每个属性,但是我想知道具体的执行细节,为此每个set和get方法 我设置了打印一个数字,在控制台观察顺序,请人解释一下这些执行顺序,控制台的打印为:
7
9
11
3
5
1
0
0
2
2
4
4
6
6
8
8
10
10
13 首先执行验证,错误放在addActionError()........
15 执行execute()方法
0
2
6
8
10

下面的是代码
提交页面代码
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%@ 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 'register2.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>

<table align="center" width="40%" border="0">
<tr>
<td>
<s:fielderror cssStyle="color:red" /><!-- 显示action级错误 -->
</td>
</tr>
</table>

<!-- 提交到register的action theme="simple"取消strus表单提供的类型转换错误输出 同时label标签失效-->
<s:form action="register" theme="simple">

<table align="center" width="40%" border="0">

<tr>
<td>
username
</td>

<td>
<s:textfield name="username" label="用户帐号" theme="simple" ></s:textfield>
</td>
</tr>

<tr>
<td>
password
</td>

<td>
<s:password name="password" label="密码" theme="simple"></s:password>
</td>
</tr>

<tr>
<td>
re-password
</td>

<td>
<s:password name="repassword" label="重复密码" theme="simple"></s:password>
</td>
</tr>

<tr>
<td>
age
</td>

<td>
<s:textfield name="age" label="年龄" ></s:textfield>
</td>
</tr>

<tr>
<td>
birthday
</td>

<td>
<s:textfield name="birthday" label="出生日期" theme="simple"></s:textfield>
</td>
</tr>

<tr>
<td>
graduation
</td>

<td>
<s:textfield name="graduation" label="毕业日期" theme="simple"></s:textfield>
</td>
</tr>

<tr>
<td>
<s:submit label="submit"></s:submit>
</td>

<td>
<s:reset value="重置"></s:reset>
</td>
</tr>


</table>

</s:form>

</body>
</html>

剩下的action类代码 及mxl验证代码在另一帖子里,同时输入csdn提示:信息太长
...全文
200 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
djyzhang123 2009-08-12
  • 打赏
  • 举报
回复
楼上主意很不错~~~,楼主可以多用用debug模式观察观察~~~~
goosman 2009-03-31
  • 打赏
  • 举报
回复
把项目中的struts包关联上struts的源码.

然后在org.apache.struts.action.RequestProcessor类的process方法上掐个断点.

跟踪进去看看.

81,111

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧