Struts2 OGNL動態配置result(十八)

迎著太陽走向遠方發表於2017-03-27
1.動態配置result

使用萬用字元動態配置result,<result>元素為{1}.jsp,這是根據URL引數來匹配的,如果根據Action中的屬性名稱來進行動態配置,那麼就需要使用OGNL表示式
例項:


2.案例 :採用action中的persoName動態獲取 結果頁面
struts.xml
<package name="default" extends="struts-default">
		<!-- redirect resytype test -->
		<action name="test2" class="com.luob.action.DispatcherTest">
			<result type="redirect">/testSuccess.jsp</result>
		</action>
		
		<!-- ognl test -->
		<action name="ognlTest" class="com.luob.action.DispatcherTest">
			<result name="success">/${personName}.jsp</result>
		</action>
	</package>


action

package com.luob.action;

import com.opensymphony.xwork2.ActionSupport;

public class DispatcherTest extends ActionSupport {
  private String personName;
  private String personTelephone;
  private String personAddress;
  
  
  
	@Override
public String execute() throws Exception {
	// TODO Auto-generated method stub
	return SUCCESS;
}
	public String getPersonName() {
		return personName;
	}
	public void setPersonName(String personName) {
		this.personName = personName;
	}
	public String getPersonTelephone() {
		return personTelephone;
	}
	public void setPersonTelephone(String personTelephone) {
		this.personTelephone = personTelephone;
	}
	public String getPersonAddress() {
		return personAddress;
	}
	public void setPersonAddress(String personAddress) {
		this.personAddress = personAddress;
	}
  
  
}


OGNLTest.jsp

<body>
    您新增的聯絡人資訊為:
    注意,輸入的時候 如果在personName輸入 admin 就返回到admin.jsp
     如果輸入 aa 就返回的 aa.jsp
  <hr/>
  <s:form action="ognlTest" method="post" >
  <s:textfield name="personName" label="姓名"/>
  <s:textfield name="personTelephone"  label="電話"/>
  <s:textfield name="personAddress" label="地址"/>
  <s:submit value="提交"/>
  </s:form>
  </body>


admin.jsp

 <body>
    您新增的聯絡人資訊為:admin.jsp
  <hr/>
	聯絡人姓名:<s:property value="personName"/>
 	聯絡人電話:<s:property value="personTelephone"/>
 	聯絡人地址:<s:property value="personAddress"/>
  </body>

相關文章