在action的登陸方法中使用動態表單(屬于ajax)
在配置文件中(struts-config.xml)
<form-beans>
<form-bean
name="loginForm"
type="org.apache.struts.action.DynaActionForm">
<form-property
name="userName" type="java.lang.String" />
<form-property
name="password" type="java.lang.String" />
</form-bean>
<action-mappings>
<action path="/login" type="org.springframework.web.struts.DelegatingActionProxy"
parameter="method" name="loginForm" validate="false" scope="request" input="/login.jsp">
<forward
name="index" path="/index.jsp"></forward>
</action>
……………………
</action-mappings>
在LoginAction.java中
public class LoginAction extends DispatchAction {
private UserManager
userManager;
public UserManager getUserManager() {
return userManager;
}
public void setUserManager(UserManager userManager) {
this.userManager = userManager;
}
/**
* 登陸驗證后跳轉到用戶概況頁面 (index.jsp)
*/
public ActionForward login(ActionMapping mapping,
ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
/** 獲得動態表單**/
DynaActionForm
loginForm = (DynaActionForm)form;
/** 從表單中獲得用戶名**/
String
userName = (String)loginForm.get("userName");
/** 從表單中獲得密碼**/
String
password = (String)loginForm.get("password");
/** 通過用戶名得到用戶實體**/
User
user = userManager.getUserByName(userName);
/** 設置錯誤信息**/
ActionMessages
actionMessages = super.getErrors(request);
/** 判斷用戶是否存在**/
if(user == null){
/** 把錯誤信息添加到loginError中**/
actionMessages.add("loginError",new ActionMessage("MSG002"));
/** 保存錯誤信息并傳遞到登錄頁面中**/
super.saveErrors(request, actionMessages);
/** 跳轉到登陸頁面**/
return mapping.getInputForward();
}else{
/**判斷密碼是否錯誤 **/
if(!password.equals(user.getPassword())){
actionMessages.add("loginError",new ActionMessage("MSG002"));
super.saveErrors(request, actionMessages);
return mapping.getInputForward();
}
}
/** 把用戶user存到session里**/
request.getSession().setAttribute("user",user);
//不能把user這個對象放在session里,應該放userId,不然外鍵太多容易是tomcat死了
/** 驗證成功 跳轉到用戶概況頁面**/
return mapping.findForward("index");
}
}
JSP頁面上:動態表單的屬性要和頁面的屬性名字相同!
<input name="userName" id="userName"
type="text" />
<input name="password" id="password"
type="password" />