在接受請求參數的時候,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代碼簡便而且好增加功能維護