Java.小学生

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Struts2 入门修行第一天 | 小节二

通过上一篇我们基本搭建一个 Struts2 环境成功啦,现在我们页面需要数据传递等

我们这里把第一个页面修改为一个添加数据的页面,在第二个页面显示第一个页面录入的数据

1. 在这里新建一个JavaBean Person.java

 1 package com.cookie.bean;
 2 
 3 public class Person {
 4 
 5     private Integer id;
 6     private String name;
 7     private String desc;
 8     
 9     public String detail(){
10         // 打印当前对象到控制台
11         System.out.println(this);
12         // 给当前对象编号赋值
13         this.setId(1001);
14         
15         return "success";
16     }
17     
18     public Integer getId() {
19         return id;
20     }
21     public void setId(Integer id) {
22         this.id = id;
23     }
24     public String getName() {
25         return name;
26     }
27     public void setName(String name) {
28         this.name = name;
29     }
30     public String getDesc() {
31         return desc;
32     }
33     public void setDesc(String desc) {
34         this.desc = desc;
35     }
36 
37     @Override
38     public String toString() {
39         return "Person [id=" + id + ", name=" + name + ", desc=" + desc + "]";
40     }
41 }

 

2. 修改之前 index.jsp

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE>
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 7 <title>Insert title here</title>
 8 </head>
 9 <body>
10     <form action="detail.action" method="post">
11         name: <input type="text" name="name" /><br><br>
12         desc: <input type="text" name="desc" /><br><br>
13         <input type="submit" value="submit" />
14     </form>
15 </body>
16 </html>

 

3. 修改之前的 detail.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    id:      ${id}<br><br>
    name:    ${name}<br><br>
    desc:    ${desc}<br><br>
</body>
</html>

4. 修改之前的 struts.xml 为

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE struts PUBLIC
 3     "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
 4     "http://struts.apache.org/dtds/struts-2.3.dtd">
 5 
 6 <struts>
 7     <package name="hello" extends="struts-default">
 8         <action name="detail" class="com.cookie.bean.Person" method="detail">
 9             <result>/detail.jsp</result>
10         </action>
11     </package>
12 </struts>

5. 启动项目 运行

在第一个画面两文本框中分别输入,zhangsan / 小学生 , 然后点击提交按钮

1).  在控制台中输出 Person [id=null, name=zhangsan, desc=小学生]

2).  在第二个页面  1001 / zhangsan / 小学生

 

6. 通过上面例子,得出,第一个页面把输入提交上去并复制给 Person 对象, 在Person 下面的detail 方法中给当前对象复制一个编号,也回传到第二个界面

 

7.  这里来解析哈上面一串操作

  1).  package: 三个属性

      |-----name: 给当前 package 定义一名称

      |-----extends: 指定当前 package 继承哪一个 package (这里struts-default 为 struts2 提供的一个默认设置,里面有很多默认类,返回类型什么的,可以去 struts-default.xml 中取仔细查看)

      |-----namespace: 指定当前模块路径,及默认值为 / 也可以指定一个值,例:namespace="/hello" 那么访问action 路径前就得加上 /hello

  2). action: 三个属性

      |-----name:当前 action 路径,这里不带后缀

      |-----class:当前 action 映射的 java 类(默认为:com.opensymphony.xwork2.ActionSupport)

      |-----method: 当前 action 路径具体访问的方法(默认为:execute)

  3).  result: 两个属性

      |-----name: action映射方法的返回值(默认为:success)

      |-----type: 页面跳转方式(默认为:转发[dispatcher])

        |-----chain:转发到 action

        |-----dispatcher: 转发到 jsp

        |-----redirectAction: 重定向到 action

        |-----redirect: 重定向到 jsp

        |-----stream: 文件上传

8:Person -> detail()

  这里会把参数通过set 方法自动给当前 Action 赋值,也可以在该方法中为当前对象属性赋值,修改等,页面通过 EL 表达式获取

posted on 2016-09-22 15:52  Java.小学生  阅读(203)  评论(0)    收藏  举报