zoukankan      html  css  js  c++  java
  • struts2中的ModelDriven使用

    struts2中的ModelDriven使用

    例子都为struts2中的文档例子

    JSP提交数据:
     
    <s:form action="modelDrivenResult" method="POST" namespace="/modelDriven">
    <s:textfield label="Gangster Name" name="name" />
    <s:textfield label="Gangster Age" name="age" />
    <s:checkbox label="Gangster Busted Before" name="bustedBefore" />
    <s:textarea cols="30" rows="5" label="Gangster Description" name="description" />
    <s:submit />
    </s:form>

    根据数据提交的action,和namespace,修改struts.xml的内容

    添加下面配置到struts.xml
     
    <package name="base2" namespace="/modelDriven" extends="struts-default">
    <action name="modelDrivenResult" class="ModelDrivenAction">
    <result>/Hello.jsp</result>
    </action>
    </package>

     然后添加处理数据的action,这里使用ModelDriven的方式。该action继承ModelDriven接口,实现getModel()方法,方法只返回一个模型对象,默认转换Object。只要改模型对象提供的方法和提交数据的name属性对应,struts2就能自动把数据赋给模型对象,最后对象提供各种get方法把数据存放在值栈,传递到Hello.jsp。

    处理的action,返回模型对象Gangster。
     
    public class ModelDrivenAction extends ActionSupport implements ModelDriven {
    public String execute() throws Exception {
    return SUCCESS;
    }
     
    public Object getModel() {
    return new Gangster();
    }
    }
    模型类
     
    public class Gangster implements Serializable {
    private String name;
    private int age;
    private String description;
    private boolean bustedBefore;
     
    public int getAge() {
    return age;
    }
    public void setAge(int age) {
    this.age = age;
    }
    public boolean isBustedBefore() {
    return bustedBefore;
    }
    public void setBustedBefore(boolean bustedBefore) {
    this.bustedBefore = bustedBefore;
    }
    public String getDescription() {
    return description;
    }
    public void setDescription(String description) {
    this.description = description;
    }
    public String getName() {
    return name;
    }
    public void setName(String name) {
    this.name = name;
    }
    }

    最后Hello.jsp中可以使用<s:property value=".."/>取值,value直接使用相应的age,name等。而action虽然提供的getModel()方法,但因为转为了Object,而Object不能提供取值的方法,所以无法使用value="model.xxx"来取值。

  • 相关阅读:
    XSS相关有效载荷及绕道的备忘录(下)| 文末有打包好的负载
    基于windows 10打造的kali工具集
    XSS挑战之旅---游戏通关攻略
    SQLi_Labs通关文档【1-65关】
    Linux 安装 lanmp
    linux 下的init 0,1,2,3,4,5,6知识介绍
    WebGL2系列之多采样渲染缓冲对象
    FireFox下Canvas使用图像合成绘制SVG的Bug
    WebGL 着色器偏导数dFdx和dFdy介绍
    JavaScript 一元正号运算符
  • 原文地址:https://www.cnblogs.com/123a/p/2661514.html
Copyright © 2011-2022 走看看