麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 網站 > WEB開發 > 正文

Strust2學習之Action、Result知識要點

2024-04-27 15:13:12
字體:
來源:轉載
供稿:網友
1.Action傳遞數據至jsp

發送:Action向前端傳遞數據的代碼(共有四種方式,一般采用這一種):

package com.bjsxt.struts2.user.action;import java.util.Map;import org.apache.struts2.interceptor.applicationAware;import org.apache.struts2.interceptor.RequestAware;import org.apache.struts2.interceptor.sessionAware;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;public class LoginAction2 extends ActionSupport implements RequestAware,SessionAware, ApplicationAware {		PRivate Map<String, Object> request;	private Map<String, Object> session;	private Map<String, Object> application;		//DI dependency injection	//IoC inverse of control	public String execute() {		request.put("r1", "r1");		session.put("s1", "s1");		application.put("a1", "a1");		return SUCCESS; 	}	@Override	public void setRequest(Map<String, Object> request) {		this.request = request;	}	@Override	public void setSession(Map<String, Object> session) {		this.session = session;	}	@Override	public void setApplication(Map<String, Object> application) {		this.application = application;	}		}

采用控制反轉的方式,通過集合接收數據

 

接收:JSP接收數據(一般采用session接收):

<body>	User Login Success!	<br />	<s:property value="#request.r1"/> | <%=request.getAttribute("r1") %> <br />	<s:property value="#session.s1"/> | <%=session.getAttribute("s1") %> <br />	<s:property value="#application.a1"/> | <%=application.getAttribute("a1") %> <br />	<s:property value="#attr.a1"/><br />	<s:property value="#attr.s1"/><br />	<s:property value="#attr.r1"/><br />	<s:debug></s:debug>	<br /></body>

采用Strust2標簽接收數據,其中<s:debug></s:debug>是struts2提供了一個非常好的調試方法.就是在頁面上添加一個debug標簽..它會自動幫我們將一些信息顯示在頁面上。

 

2.Strust.xml使用通配符來簡化配置

<struts>    <constant name="struts.devMode" value="true" />    <package name="actions" extends="struts-default" namespace="/actions">        <action name="Student*" class="com.bjsxt.struts2.action.StudentAction" method="{1}">            <result>/Student{1}_success.jsp</result>        </action>                <action name="*_*" class="com.bjsxt.struts2.action.{1}Action" method="{2}">            <result>/{1}_{2}_success.jsp</result>        </action>    </package></struts>

 

3.簡單數據校驗,傳遞錯誤信息

使用this.addFieldError()方法將錯誤信息傳遞至前端:

public String add() {		if(name == null || !name.equals("admin")) {			this.addFieldError("name", "name is error");			this.addFieldError("name", "name is too long");			return ERROR;		} 		return SUCCESS;	}

 

前端采用標簽接收錯誤信息:

<body>	User Add Error!	<s:fielderror fieldName="name" theme="simple"/>	<br />	<s:property value="errors.name[0]"/>	<s:debug></s:debug></body>

傳遞過來的errors是一個含有數組的集合,因此使用鍵值對取信息,再采用數組下標取值。

 

4.在Strust.xml中的一些常用配置的解釋

默認的action是index,處理還會交給下面的index的action,一般可用于用戶輸入不存在的action時,頁面跳轉到指定頁面(規范用戶操作,界面友好):

<default-action-ref name="index"></default-action-ref>

 

strust的開發模式,默認值為false,改為true后一代更改文件配置不需重啟tomcat就可生效:

<constant name="struts.devMode" value="true" />

PS:但論壇有用戶反映,使用開發模式后,jQuery異常。可以測試,建立項目時建議關閉開發模式

 

5.Strust.xml中<result type="XXX">即跳轉方式有四種:

 <action name="r1">	    	<result type="dispatcher">/r1.jsp</result>	    </action>	    	    <action name="r2">	    	<result type="redirect">/r2.jsp</result>	    </action>	    	    <action name="r3">	    	<result type="chain">r1</result>	    </action>	    	    <action name="r4">	    	<result type="redirectAction">r2</result>	    </action>

dispatcher是服務器跳轉頁面,redirect是客戶端跳轉頁面,chain是服務器跳轉到action,redirectAction是客戶端跳轉到action。

 

 

 

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 色女人在线 | 一区国产精品 | 原来神马影院手机版免费 | 国产二区三区在线播放 | 999精品国产 | 日韩视频在线观看免费视频 | 免费色片| 日本黄色一级视频 | 亚洲一区二区三区四区精品 | 午夜国产成人 | 伊人久久电影网 | 国产1区2区在线观看 | 国产一区日韩精品 | 综合精品视频 | 操碰| 成人做爰s片免费看网站 | 黄色大片免费网站 | 欧美视频在线一区二区三区 | 亚洲午夜天堂吃瓜在线 | 午夜伦情电午夜伦情电影 | 午夜精品久久久久久久爽 | 亚洲成人自拍电影 | 国产自在线 | 国产美女视频一区二区三区 | 91网站链接 | 精品影视一区二区 | 91成人在线免费视频 | 国产精品久久久久久影院8一贰佰 | 99国产精品欲a | 嫩呦国产一区二区三区av | 伊人av影院 | 国内久久久久 | 狠狠干导航 | 国产午夜网 | 久久久久免费精品国产小说色大师 | 亚洲第一页中文字幕 | 中文字幕在线网站 | 国产91久久久久久 | 久在线观看福利视频69 | av在线1 | 国产chinesehd精品91 |