用JBuilder X 做一个简单的Struts应用,捆绕俺N久!
我在JBuilder下用Struts模式做一个身份验证,总是出现莫名其妙的错误,请高手指点!
[==========这是含有表单的JSP页面代码================]
<font color="red" size="10pt"><html:errors/></font>
<div align="center">
<table width="776" height="300" border="0" cellpadding="0" cellspacing="0">
<tr>
<TD width="18" background="image/bg1222.jpg"> </TD>
<td align="center" valign="middle" width="740">
<table width="360" align="center" height="90">
<script language="javascript" src="scripts/UserCheck.js"></script>
<FORM name="LOGIN" onsubmit="if(LoginFormTest()==false) return false;" action="userLoginAction.do" method="post">
<tr>
<td width="174" align="right" valign="middle"><span class="style7">用户名:</span></td>
<td width="174" align="left" valign="middle"><INPUT style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; BORDER-LEFT: #808080 1px solid; WIDTH: 96px; BORDER-BOTTOM: #808080 1px solid; HEIGHT: 20px; BACKGROUND-COLOR: #ffffff" maxLength="32" name="name"><html:errors property="name"/></td>
</tr>
<tr>
<td align="right" valign="middle"><span class="style7">密 码:</span></td>
<td align="left" valign="middle"><INPUT style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; BORDER-LEFT: #808080 1px solid; WIDTH: 96px; BORDER-BOTTOM: #808080 1px solid; HEIGHT: 20px; BACKGROUND-COLOR: #ffffff" type="password" maxLength="32" name="passwd"><html:errors property="passwd"/></td>
</tr>
<tr>
<td align="right" valign="middle"><span class="style7">验证码:</span></td>
<td align="left" valign="middle">
<INPUT style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; BORDER-LEFT: #808080 1px solid; WIDTH: 36px; BORDER-BOTTOM: #808080 1px solid; HEIGHT: 20px; BACKGROUND-COLOR: #ffffff" maxLength="4" size="4" name="checkcode"><img alt="验证码" src="CheckCode.jsp" border="0"/><html:errors property="checkCode"/>
</td>
</tr>
<tr>
<td align="right" valign="middle"></td>
<td align="left" valign="middle"><input type="submit" name="Submit" value="提交"></td>
</tr>
<tr>
<td colspan="2" align="center" valign="middle"><a href="Register.jsp" class="link1">没有注册?点此处注册</a></span></td>
</tr>
</form>
</table>
[==========这是ActionFrom的代码================]
public ActionErrors validate(ActionMapping actionMapping, HttpServletRequest httpServletRequest) {
/**@todo: finish this method, this is just the skeleton.*/
ActionErrors errors=new ActionErrors();
if(this.name==null){
errors.add("name",new ActionMessage("userLogin.name.incorrect"));
return errors;
}
if(this.passwd==null){
errors.add("password",new ActionMessage("userLogin.password.incorrect"));
return errors;
}
if((this.checkcode==null)){
errors.add("checkCode",new ActionMessage("userLogin.checkCode.incorrect"));
return errors;
}
HttpSession session=httpServletRequest.getSession();
if(session.getAttribute("checkCode").toString()!=checkcode){
errors.add("checkCode",new ActionMessage("userLogin.checkCode.incorrect"));
return errors;//就这里!!!这里一返回,就出现错误
}
return null;
}
[==========这是Action中的代码================]
public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) {
/**@todo: complete the business logic here, this is just a skeleton.*/
userLoginActionForm userLoginActionForm = (userLoginActionForm) actionForm;
MessageResources message=getResources(httpServletRequest);
ActionMessages errors=new ActionMessages();
UserLoginBean userLogin=new UserLoginBean();
String name=userLoginActionForm.getName();
String passwd=userLoginActionForm.getPasswd();
if(userLogin.userLoginIn(name,passwd)){
return(new ActionForward(actionMapping.getInput()));
}else{
return(actionMapping.findForward("userLogin"));
}
}
声明:我是超级草鸟,问题一大堆,请大家多多指教!!!