使用Struts开发强制修改用户密码问题,急急急!请教各位的帮助!

我现在有这么一个需求,但现在还没有很好的解决~
需求是这样的,我所做的系统中有一个密码管理策略,必须符合两条规定:
1,用户在第一次登录时必须强制修改密码

2,密码在一个月后将失效,用户登录时也强制修改密码

本着这个需求的原则,我在后台对该需求进行了判断,一旦不符合上述两条规则,则forward到密码修改页面
代码如下所示:
if (loginResult.equals("1")) {
...
} else if (loginResult.equals("2")){
return actionMapping.findForward("modPwd"); //forward至修改密码页面
}

在程序运行过程当中,用户第一次登录或密码超过30天,自动跳转到修改密码页面,并将登录时输入的密码自动填充到原密码文本框中,因为为同一属性 passwd。至此我认为一切正常。于是输入新密码,在这个页面提交时,问题来了,居然直接返回到登录页面,程序没有调用 changePasswdAction,后台也没有错误信息,页面代码如下所示:
<html:form action="/changePasswdAction.do" method="POST">
<tr>
<td>原密码</td>
<td><html:password property="passwd"/></td>
</tr>
<tr>
<td>新密码</td>
<td><html:password property="newPasswd"/></td>
</tr>
<tr>
<td>确认新密码</td>
<td><html:password property="confirmPasswd"/></td>
</tr>
<tr>
<td></td>
<td><html:submit property="submit" value="修改"/>
<html:reset value ="重置"/></td>
</tr>
</table>
</html:form>

Struts-config.xml代码如下所示:
<action input="/login.jsp" name="userForm" path="/userAction" scope="request" type="com.sfexpress.cdh.action.UserAction">
<forward name="ok" path="/main.jsp" />
<forward name="fail" path="/login.jsp" />
<forward name="modPwd" path="/changePasswd.jsp" />
</action>
<action input="/changePasswd.jsp" name="userForm" path="/changePasswdAction" scope="request" type="com.sfexpress.cdh.action.ChangePasswdAction">
<forward name="ok" path="/login.jsp" />
</action>

整个过程我分析过,也在页面上用JS做过输出,changePasswd.jsp确实是提交了changePasswdAction.do,可为什么就是没有调用Action呢?效果就像是点了返回按钮一样,直接返回到登录页面

值得注意的是:两个页面用的是同一个FormBean
[2000 byte] By [feiranli] at [2008-6-5]
# 1
在数据库里设置字段控制添加字段

是否首次登陆 首次登陆时间

然后
第一次登陆 给 是否首次登陆 赋值 ,记录 首次登陆时间

每次登录都让系统时间和登陆时间对比一次 程序里设定
当时间差为一个月(30天?)把两个字段 是否首次登陆 首次登陆时间
设置为最初是状态
jsfhua at 2007-10-22 > top of Msdn China Tech,Java,框架、开源...
# 2
谢谢楼上的XD,其实思路我已经有了,我的问题是为什么按提交以后,不触发changePasswdAction~而是直接返回到登录页面,后台则什么都没做呢~~
效果就像是点了IE的后退按钮似的~
feiranli at 2007-10-22 > top of Msdn China Tech,Java,框架、开源...