1. 程式人生 > >struts2之action接收引數方法(get_set方法)

struts2之action接收引數方法(get_set方法)

1 struts2的action接收引數可以通過set和get方法。首先將屬性新增set和get方法。然後struts2會通過反射(有set和get方法)自動對屬性進行例項化。達到java中的new一個物件的目的。


2 有兩種情況下,struts2會自動反射進行例項化。第一種是在配置檔案中對屬性進行配置。
如:<bean name="examples" class="com.example.bean.Example" scope="prototype">
</bean>


<bean name="exampleAction" class="com.example.action.ExampleAction" scope="prototype">
<property name="exampleService" ref="exampleService"></property>
<property name="bean" ref="examples"></property>
</bean>


<action name="exampleSer" class="exampleAction">
        <result name="success">/jsp/example/example_query.jsp</result>
        </action>




解釋(前提是action中要有bean的set和get方法):
首先是將bean的屬性配置在配置檔案中。
其次是將action中的bean的屬性,通過ref來進行賦值引用
最後在struts中引用該action


一般情況下都這麼在配置檔案中進行配置即可。


3還有一種情況說明下(前提是action中要有bean的set和get方法):當配置檔案中如果沒有對action屬性進行賦值引用 ,而在url中有action的屬性。在這種情況下,struts2也會自動進行反射處理。達到java中的new一個例項化的目的
如:
<bean name="exampleAction" class="com.example.action.ExampleAction" scope="prototype">
<property name="exampleService" ref="exampleService"></property>
</bean>


<action name="exampleSer" class="exampleAction">
        <result name="success">/jsp/example/example_query.jsp</result>
        </action>


以上的struts配置檔案中沒有對bean進行ref賦值引用。而url中:exampleSer!query?bean.id=1 這時struts也會對bean進行反射例項化處理。


總結:把action中的bean屬性在配置檔案中進行配置。這是最好的方法。無論url中有沒有action的bean屬性。struts都會進行反射例項化處理。
故:始終將action的bean屬性在配置檔案中進行配置(前提是bean屬性必須有set和get方法)


完整的例子:
package com.example.action;


import java.util.List;


import com.example.bean.Example;
import com.example.service.interfaces.ExampleService;
import com.opensymphony.xwork2.ActionSupport;


public class ExampleAction extends ActionSupport{


private Example bean;

private ExampleService exampleService;


public ExampleAction() {
super();
// TODO Auto-generated constructor stub
}


public Example getBean() {
return bean;
}


public void setBean(Example bean) {
this.bean = bean;
}


public ExampleService getExampleService() {
return exampleService;
}


public void setExampleService(ExampleService exampleService) {
this.exampleService = exampleService;
}

public String query(){
System.out.println("query");
List<Example> lists=this.exampleService.query(bean);
System.out.println("size:"+lists.size());
if(bean!=null){
bean.setResultLists(lists);
}else{
System.out.println("bean is null");
}
return "success";
}

public String queryMethod(){
System.out.println("queryMethod");
List<Example> lists=this.exampleService.query(bean);
System.out.println("size:"+lists.size());
if(bean!=null){
bean.setResultLists(lists);
}else{
System.out.println("bean is null");
}
return "success";
}




}




struts.xml
 <action name="exampleSer" class="exampleAction">
        <result name="success">/jsp/example/example_query.jsp</result>
        </action>


spring配置檔案:
<bean name="examples" class="com.example.bean.Example" scope="prototype">
</bean>


<bean name="exampleDao" class="com.example.dao.impl.ExampleDaoImpl">
<property name="sqlMapClient" ref="sqlMapClient"></property>
</bean>


<bean name="exampleService" class="com.example.service.impl.ExampleServiceImpl">
<property name="exampleDao" ref="exampleDao"></property>
</bean>


<bean name="exampleAction" class="com.example.action.ExampleAction" scope="prototype">
<property name="exampleService" ref="exampleService"></property>
<property name="bean" ref="examples"></property>
</bean>






example_query.jsp(迭代標籤進行處理):
<table class="table_css">
  <tr>
  <td>id</td>
  <td>name</td>
  <td>remark</td>
  </tr>
  <s:if test="#request.bean.resultLists!=null&&#request.bean.resultLists.size()>0">
 
  <s:iterator id="exampleLists" value="#request.bean.resultLists" status="">
  <tr>
  <td>
  <s:property value="#exampleLists.id"/>
  </td>
  <td>
  <s:property value="#exampleLists.name"/>
  </td>
  <td>
  <s:property value="#exampleLists.remark"/>
  </td>
  </tr>
  </s:iterator>
  </s:if>
  </table>

相關推薦

struts2action接收引數方法(get_set方法)

1 struts2的action接收引數可以通過set和get方法。首先將屬性新增set和get方法。然後struts2會通過反射(有set和get方法)自動對屬性進行例項化。達到java中的new一個物件的目的。 2 有兩種情況下,struts2會自動反射進行例項化。第一

【ssh】struts2action接收引數方法

Struts2中Action接收引數的方法主要有以下三種: Struts2中Action接收引數的方法主要有以下三種: 1.使用Action的屬性接收引數:     a.定義:在Action類中定義屬性,建立get和set方法;     b.接收:通過屬性接收引數,如

Struts2Action接收引數方法:屬性,Model,ModelDriver

Struts2中Action接收引數的方法主要有以下三種: 1.使用Action的屬性接收引數:     a.定義:在Action類中定義屬性,建立get和set方法;     b.接收:通過屬性接收引數,如:userName;     c.傳送:使用屬性名傳遞引數,如:u

struts2action接收引數的3種方法

Struts2中Action接收引數的方法主要有以下三種: Struts2中Action接收引數的方法主要有以下三種: 1.使用Action的屬性接收引數:     a.定義:在Action類中定

Struts2action接收請求引數

1. 採用基本型別接受請求引數(get/post) action: public class GetparamAction extends ActionSupport {private int age;private String name;public String ge

關於struts2action獲取引數的三種方法

    public String add() throws Exception {         // ------------------------------方法一:通過設定get與set方法來獲取引數         System.out.println(thi

Struts2action接收中文參數為亂碼解決方法

tin rate 過濾 apache nrv win @override name dci 老實說,中文亂碼問題是每個程序員會經常遇到的問題,而且也是一個很頭疼的問題。網上很多關於解決中文亂碼的帖子,看幾個之後你會發現大都是一樣的。但是我們照著做,卻還是無法解決亂碼問題。我

Struts2 學習筆記 —— 10 —— Action接收引數時的中文亂碼問題

在Struts接收引數時,如果輸入中文,那麼可能就會出現亂碼問題 首先寫一個index.jsp <%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding=

Struts2 動態Action的三種實現方法

備註:原文不詳,故無法貼網址 最早使用動態方式呼叫是在spring中,沒想到Struts2也支援動態方法呼叫了,真是方便不少啊,呵呵,下面就來說說吧 :-)      1.動態方法呼叫        Struts2支援動態方法呼叫,它指的是一個Action中有多個方法,系統根據表單元素給定的acti

Action接收引數的3種方式(屬性,域模型,模型驅動,struts2.1.8)

常用第一種跟第二種 1.Action屬性傳引數: 建議:屬性應該與引數名相同。 在一個繼承ActionSupport類中新增接收引數的屬性,並生成其get() set()方法,在請求中附帶引數和對應的值,在struts2幫我們new這個類的時候,會自動呼叫get,set方法

ssh框架總結action接收參數的三種方式

ext 方式 clas ems driver cor void 圖片 div 頁面將參數傳遞給action的三種方式 一是通過屬性傳值: 將頁面和action的的屬性值保持一致,在action上寫上該屬性的set和get方法,這樣在頁面提交參數的時候,action就會調用s

struts2action

動態調用 nbsp 文件 Coding quest 想要 public 完成 ram struts2在配置web.xml時,會指定filter攔截路徑,如*.action。當瀏覽器請求一個action時,默認調用的是該action中的execute()方法。想要調用其他方法

Struts2 Action 類訪問 WEB 資源

PV response 一個 pac work 避免 title xtend 發送請求 接著上次博客的內容我繼續分享我所學到的知識,和自己在學習過程中所遇到問題以及解決方案。當然,如果讀者發現任何問題均可以在下方評論告知我,先謝! 在 Action 中訪問 WEB 資源 w

Struts2Action的訪問傳統方式

public class CustomerAction extends ActionSupport { public String save(){ System.out.println("儲存了客戶"); return null; }

Struts2Action類的三種編寫方式

Action類的三種編寫方式 Action 類就是一個pojo類 (Plain Ordinary Java Object)簡單的java物件,沒有繼承某個類,沒有實現介面,就是POJO類 Action類可以實現Action介面

Spring Boot Controller 接收引數和返回資料總結(包括上傳、下載檔案)

        一、接收引數(postman傳送) 1.form表單 @RequestParam("name") String name 會把傳遞過來的Form表單中的name對應到formData方法的nam

struts2Action雜談

5). result 的 type 屬性值在 struts-default 包的 result-types 節點的 name 屬性中定義.          常用的有 :     > dispatcher(預設的): 轉發. 同 Servlet 中的轉發.      > redirect: 重定向

Struts2 後臺action接收 jsp頁面中checkbox中的值

如前端頁面jsp中的標籤為: <form action="myurl"> <input type="checkbox" name="User.name" value="zhangsan">張三 <input type="checkbo

SpringMVC後臺接收引數與前臺傳遞資料

1、接收請求引數 1. 使用HttpServletRequest獲取 Java程式碼 收藏程式碼 @RequestMapping(“/login.do”) public String login(HttpServletRequest reque

Struts2 Action類與 jsp 頁面的資料互動

使用Struts2標籤,需要先在頁面中引入Struts2標籤庫:(標籤庫的位置在struts2-core-2.3.1.2.jar包中)<%@ taglib prefix="s"uri="/str