struts2中jsp页面与action之间的传值

Posted rong-xiu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了struts2中jsp页面与action之间的传值相关的知识,希望对你有一定的参考价值。

一、从jsp页面中取值

a)      设计JavaBean

Java类

public class Student {
    String name;
    String sex;
    Long id;
    int age;
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
  
}

b) 编写action类,定义变量且提供getter和setter方法,传递过来的参数会封装在stu中,用getter方法取值就可以

StudentAction类

public class StudentAction {
    //获取jsp中的学生信息
    Student stu ;
    public void setStu(Student stu) {this.stu = stu;}
    public Student getStu() {return stu;}
    
    public String execute() throws Exception {
        System.out.println("已提交学生是:"+stu1.name+" "+stu1.age+"岁  "+stu1.sex+" "+stu1.id+" "
                +address1.province+address1.city);
                return "loginresult";
    };
}

c)      设计表单,在jsp页面中直接用  <对象名.属性名>获取.(emmm。。其中过程我也有点懵,只知道可以这样写,怕忘了所以先记着)

student.jsp

<form action="StudentAction">
           学生姓名:<input type="text" name="stu.name"/></br></br>
           学生年龄:<input type="text" name="stu.age"/></br></br>
           学生编号:<input type="text" name="stu.id"/></br></br>
           学生性别:<input type="text" name="stu.sex"/></br></br>
           学生籍贯:<input  type="text" name="address.province"/></br></br>
           学生地址 :<input  type="text" name="address.city"/></br></br>
           
           <input type="submit" value="提交">
  </form>

 

d) 配置好web.xml和struts.xml文件

struts.xml

<struts>
    <constant name="struts.devMode" value="true"/>
    <package name="gsonTest" extends="struts-default">
 
        <action name="StudentAction" class="gsonTest.StudentAction">
         <result name="loginresult">success.jsp</result>
        <result name="input">/error.jsp</result>
        
        </action>
        
    </package>
    
</struts>

package:name=“包名”

action : name = "jsp页面中的action名称" ,class = "包名.action类名"

 

d)  输出结果

技术图片

 

二、action传值到jsp页面

1)      在action类中一定义一个成员变量,然后对这个成员变量提供get/set方法

StudentAction类

    Student stu ;
    public void setStu(Student stu) {this.stu = stu;}
    public Student getStu() {return stu;}        

2)    导入struts标签库,用<s>标签获取值,或者用el表达式 ${stu.getName()}

success.jsp

${stu.getName()};
 学生姓名:<s:property value="stu.getName()"/></br></br>
 学生编号:<s:property value="stu.getId()"/></br></br>
 学生性别:<s:property value="stu.getSex()"/></br></br>
 学生年龄:<s:property value="stu.getAge()"/>

3) 效果

技术图片

技术图片

 

以上是关于struts2中jsp页面与action之间的传值的主要内容,如果未能解决你的问题,请参考以下文章

jsp页面和action的传值与action和action之间的转换传值等四个问题

jsp页面通过Action里的对象.属性传值 为啥没有穿过去

关于STRUTS2的传值问题?

jspServlet与jsp之间的传值

jsp页面之间的传值

JSP与servlet之间的传值方式