Spring整合Struts2和Hibernate+Maven(三)之請求的處理
阿新 • • 發佈:2018-11-01
關於請求的處理,即涉及前面提到Struts2。
具體流程:頁面發出請求->攔截action->處理action->具體到那個類的哪個方法處理。
頁面發出請求:
fm.action="/Login_register";
fm.submit();
fm.action="/Login_login";
fm.submit();
這裡的action引數為‘Login_register’,Login為字首,register和login為方法名(之後會介紹為何register為方法名)。
攔截action:
<filter>
<filter-name>struts2</filter-name>
<filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern >/*</url-pattern>
</filter-mapping>
處理action:
參看配置檔案
<action name="/Login_*" class="cm.action.user.LoginAction" method="{1}">
<result name="loginsuccess">/index.jsp</result>
<result name="registersuccess">/lv/login/registersuccess.jsp
</result>
<result name ="error">/lv/login/register.jsp</result>
</action>
action中的屬性 name:這裡用的是萬用字元,所有字首為/Login_的action都會在class:LoginAction中處理,且method為字尾。即前面說的register和login。
具體類處理請求
package cm.action.user;
import com.opensymphony.xwork2.ActionSupport;
/**
* Created by online on 17-4-14.
*/
public class LoginAction extends ActionSupport {
private String username;
private String password;
public void setUsername(String username) {
this.username = username;
}
public void setPassword(String password) {
this.password = password;
}
public String login(){
String result="";
System.out.println(username+":"+password);
result="loginsuccess";
return result;
}
public String register(){
String result="";
System.out.println(username+":"+password);
result="registersuccess";
return result;
}
}
在cm.action包下建立字尾為Action 的類,並繼承ActionSupport,請求中的引數名稱對應該類中的私有屬性,並且需要為這些屬性填寫set方法(get方法可以不使用),login和register方法返回值型別為String,根據返回值確定結果請求哪個頁面。