zoukankan      html  css  js  c++  java
  • Structs2 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"来取值。

  • 相关阅读:
    分布式架构高可用架构篇_activemq高可用集群(zookeeper+leveldb)安装、配置、高可用测试
    @interface [SpringMVC+redis]自定义aop注解实现控制器访问次数限制
    ActiveMQ安装与持久化消息
    activemq 5.13.2 jdbc 数据库持久化 异常 找不到驱动程序
    java通过Comparable接口实现字符串比较大小排序的简单实例
    微信小程序--火车票查询
    【调试】如何使用javascript的debugger命令进行调试(重要)
    【调试】js调试console.log使用总结图解(重要)
    ajax提交表单
    一个项目的404错误处理页面
  • 原文地址:https://www.cnblogs.com/lechance/p/4373288.html
Copyright © 2011-2022 走看看