使用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

