在接受请求参数的时候,Struts给我们封装了较好的功能,使得接受请求参数变的很简单,下面分别来演示GET POST方法接受请求参数。其实Struts对于POST和SET方法接受请求参数的设置是一样的,因为底层都是调用request.getParameter()方法。首先需要写好Action处理类
[java] - 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
[java] - 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;
- }
-
- }
然后建立一个表单界面
[java] - <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>
提交的就是直接使用点符号隔开,然后显示界面
[java] - <%@ 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代码简便而且好增加功能维护