源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Struts2学习笔记(5)-参数传递方法

  • 时间:2021-05-17 19:03 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Struts2学习笔记(5)-参数传递方法
参数传递即将参数传输到程序后台中,后台可能做一些处理,然后再将内容存入数据库之类嗒! 参数传递的方法较多,一一说明如下。 [b]1、Action中直接参数法[/b] 有如下的index.jsp文件
[url=http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd]http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd[/url]">  <html xmlns="[url=http://www.w3.org/1999/xhtml]http://www.w3.org/1999/xhtml[/url]">  <head>  <meta http-equiv="Content-Type" content="text/html; charset=GB18030" />  <base href="<%=basePath %>"/>  <title>Insert title here</title>  </head>  <body>  使用action属性接收参数<a href="user/user!add?name=a&age=8">添加用户</a>        </body>  </html>
对于其中的<a></a>来说,传递两个参数至程序,一个是name,一个是age,在struts.xml中的配置如下:
[url=http://struts.apache.org/dtds/struts-2.0.dtd]http://struts.apache.org/dtds/struts-2.0.dtd[/url]">    <struts>      <constant name="struts.devMode" value="true" />      <package name="user" extends="struts-default" namespace="/user">                    <action name="user" class="com.bjsxt.struts2.user.action.UserAction">              <result>/user_add_success.jsp</result>          </action>      </package>  </struts>
这时我们的UserAction该如何写呢?范例如下:
[url=http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd]http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd[/url]">  <html xmlns="[url=http://www.w3.org/1999/xhtml]http://www.w3.org/1999/xhtml[/url]">  <head>  <meta http-equiv="Content-Type" content="text/html; charset=GB18030" />  <base href="<%=basePath %>"/>  <title>Insert title here</title>  </head>  <body>   使用Domain Model接收参数<a href="user/user!add?user.name=a&user.age=8">添加用户</a>        </body>  </html>
修改成上述18行部分。 上面说明了下Struts2参数传递的两种方法,其中第二种方法被称为:DomainModel,域模型。即新建一个类,用于存放属性。 [b]下面说明另外一种方法,被称为:ModelDriven,模型驱动。[/b] 它与第二种方法非常类似,其他都是一样的,仅仅就是Action和访问有区别,它的Action如下:
[u]复制代码[/u] 代码如下:
package com.bjsxt.struts2.user.action;    import com.bjsxt.struts2.user.model.User;  import com.opensymphony.xwork2.ActionSupport;  import com.opensymphony.xwork2.ModelDriven;    public class UserAction extends ActionSupport implements ModelDriven<User>{            private User user = new User();            public String add() {          System.out.println("name=" + user.getName());          System.out.println("age=" + user.getAge());          return SUCCESS;      }        @Override      public User getModel() {          return user;      }        } 
我们可以从中看到,它实现了ModelDriven接口,并采用了泛型技术。采用这种方式Struts2不会自动的实例化一个对象,因此只能我们手动生成。它覆写了ModelDriven接口的getModel()方法,它的作用就是返回一个类对象。 [b]它的访问是和第二种有区别的(与第一种方法一样):[/b]
[u]复制代码[/u] 代码如下:
使用ModelDriven接收参数<a href="user/user!add?name=a&age=8">添加用户</a>
它并没有采用user.name的方式,这也是为什么必须要new一个对象的原因。 这种方式的基本思想过程为:首先Action解析url,获得其中的参数,然后进入Action中,发现此Action实现了一个ModelDriven接口,此时就调用ModelDriven接口的getModel方法,获得类的对象,然后调用此类的set和get方法,将参数传入。 此种方式体现了Struts2的MVC思想,M----Model,V----View,C----Controller,但是这种方式很少使用,我们使用最多的还是上面的第二种方式。 以上就是Struts2中参数传递方法的全部内容,希望能给大家一个参考,也希望大家多多支持编程素材网。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部