我是靠谱客的博主 善良胡萝卜,最近开发中收集的这篇文章主要介绍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>

最后

以上就是善良胡萝卜为你收集整理的struts2之action接收参数方法(get_set方法)的全部内容,希望文章能够帮你解决struts2之action接收参数方法(get_set方法)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部