Struts2---動態action以及應用

爲了處理各類邏輯業務,根據execute方法來判斷請求哪一種業務,而後將請求轉發到對應的業務處理上,java

經過動態請求action對象中的方法,實現某個單一的業務邏輯處理。jsp

動態action的應用ide

//建立action對象,添加add和update方法
import com.opensymphony.xwork2.ActionSupport;

public class UserAction extends ActionSupport {

    private static final long serialVersionUID = 1L;
 private String info;

    public String add() throws  Exception{
        info = "添加信息";
        return "add";
    }
    public String update() throws Exception{
        info = "更新信息";
        return "update";
    }

    public String getInfo() {
        return info;
    }

    public void setInfo(String info) {
        this.info = info;
    }
}

//Struts.xml配置:
 <!--聲明包 -->
<package name="myPackage" extends="struts-default">
<action name="userAction" class="com.lyq.action.UserAction">
<result name="add">user_add.jsp</result>
<result name="update">user_update.jsp</result>
</action>
</package>


//user_add.jsp頁面
<s:property value="info"/>
//user_update.jsp頁面
<s:property value="info"/>


//經過兩個超連接請求
   <a href="userAction!add">    添加</a>
     <a href="userAction!update">更新</a>

 

域模型DomainMModelpost

能夠將一些屬性封裝成爲一個實體對象,須要保存信息,直接就能夠吧一個實體對象傳過去this

//user類
public class User {
    private  String loginName;
    private String password;

    public String getLoginName() {
        return loginName;
    }

    public void setLoginName(String loginName) {
        this.loginName = loginName;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

//action中應用的User對象
import com.opensymphony.xwork2.ActionSupport;
public class DomainModel extends ActionSupport {
    private User user;

    @Override
    public String execute() throws Exception {
        System.out.println(this.user.getLoginName() + "|" + this.user.getPassword());
        if ("admin".equals(user.getLoginName())) {
            return SUCCESS;
        } else {
            return "error";
        }
    }

    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }
}


 <%--javaBean接收/域模型DomainModel--%>
     <form action="javaBean"  method="post">
         輸入姓名<input type="text" name="user.loginName" id="">
         <input type="password" name="user.password">
         <input type="submit" value="提交">
     </form>

!--用域模型配置信息-->
<package name="myPackage" extends="struts-default">
<action name="javaBean" class="com.lyq.action.DomainModel">
<result >user_add.jsp</result>
<result name="error">user_update.jsp</result>
</action>
</package>

 

驅動模型ModelDrivenspa

在域模型中須要對指定參數名稱爲user.name方式,仍是不方便,Struts2提供了不須要這樣指定就直接對實體對象參數值,這就是ModelDrien3d

 

能夠看出屬性能夠不指對象code

 

 映射的jsporm

add頁面xml

update頁面

相關文章
相關標籤/搜索