在接受请求参数的时候,Struts给我们封装了较好的功能,使得接受请求参数变的很简单,下面分别来演示GET POST方法接受请求参数。
其实Struts对于POST和SET方法接受请求参数的设置是一样的,因为底层都是调用request.getParameter()方法。
首先需要写好Action处理类
package com.bird.action;
import com.bird.bean.Person;
public class HelloWorld {
private Integer id;
private String name;
private Person person;
public Person getPerson() {
return person;
}
public void setPerson(Person person) {
this.person = person;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String execute(){
return "success";
}
public String addUI(){
return "success";
}
}
要提供set 和get方法使其变为属性,从而令struts能够调用,还有就是在struts.xml文件中要把这个Action配置好。
然后在浏览器中输入一下地址就可以了
http://localhost:8080/Struts2/test/helloworld.action?id=1&name=xxx
对于POST也是一样的,注意一下字符编码的控制,一般来说,默认是UTF-8,所以应该是没问题的。
下面介绍复合参数的接受方法
首先建立一个Person Bean
package com.bird.bean;
public class Person {
private Integer id;
private String name;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
然后建立一个表单界面
<form action="/Struts2/test/helloworld.action" method="post">
id:<input type="text" name="person.id">
name:<input type="text" name="person.name">
<input type="submit" value="提交">
</form>
提交的就是直接使用点符号隔开,然后显示界面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'hello.jsp' starting page</title>
</head>
<body>
id = ${person.id }<br>
name = ${person.name }
</body>
</html>
Struts内部使用反射技术将这些请求参数放入到指定的地方,然后才能使用EL表但是获取,总之还是推荐使用复合参数的获取吧,那样Action代码简便而且好增加功能维护