struts2传参问题,以及接收时间参数

实训做了一个s2sh项目有些知识盲点,struts2的action传参机制是:参数从jsp(也可以是其他前端页面如HTML)页面发送到后台action,在到达action前,会经过struts2本身的各种过滤器进行筛选过滤,这个过程会报错,导致action接收不到参数,例如时间类参数,从页面传来的参数都为字符串类型。需要struts2的过滤器进行解析,如果struts2的过滤器识别不了页面传来的字符串格式,就无法解析,如struts2只能识别(2017-03-33  34:23:56)这一种时间格式,其他传来的格式struts2无法解析,这时候就只能自己将数据解析成struts2识别的格式,再赋值给action中的Date类型的参数。
当在action获取数据,想要将其传到要转到的页面时,需要action中有这个参数的get和set方法,然后struts2会自动将数据传到要转到的页面,在页面用EL表达式获取数据。
例如:有一个action
    @@Autowired
    private PersonService perosnService;
    private List<Person> personlist;

 @Action(value="home",results={@Result(name="success",location="/WEB-      INF/jsp/manager/manager_home.jsp")})
    public String home(){
        personlist=personService.findAll();
        return SUCCESS;
    }

如上代码,在action中获取了person表中所有的数据,如何将personlist这个参数传到要转到的页面呢?
很简单,只要有personlist的get和set方法就行了,struts2会将action中的数据全都自动传到要转的页面
,在页面中可以直接用${ personlist}获取,personlist代表的是 getPersonlist()方法
完整的代码应该是这样的:

@Autowired
    private PersonService perosnService;
    private List<Person> personlist;

 @Action(value="home",results={@Result(name="success",location="/WEB-      INF/jsp/manager/manager_home.jsp")})
    public String home(){
        personlist=personService.findAll();
        return SUCCESS;
    }


public List<personlist> getPersonlist() {
        return personlist;
    }
    public void setPersonlist(List<Person> personlist) {
        this.personlist = personist;
    }

猜你喜欢

转载自blog.csdn.net/qq_36085004/article/details/73608934