在jsp页面提交到action中的表单元素在action中是以对象的形式存在的,

action中的对象name必须与jsp页面中的表单元素name相同,struts框架自动为action的对象赋值.

一.普通驱动

注意:action中的对象name必须与jsp页面中的表单元素name相同,struts框架自动为action的对象赋值.

案例:

struts.xml文件:

 <?xml version="1.0" encoding="UTF-8"?>

 <!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd"> <struts>
<package name="Hello" extends="default-struts" namespace="">
<action name="Hello" class="com.ahd.action.HelloAction">
<result>/success.jsp</result>
</action>
</package>
</struts>

jsp页面:

 <body>
<form action="hello.action">
用户名:<input type="text" name="username"/><br/>
密 码:<input type="password" name="password"/><br/>
<input type="submit" value="submit"/>
<input type="reset" name="reset"/><br/>
</form> </body>

action页面:

 package com.ahd.action;

 import com.opensymphony.xwork2.ActionSupport;

 public class HelloAction extends ActionSupport{
private String username;
private String password; @Override
public String execute() throws Exception {
// TODO Auto-generated method stub
return super.execute();
} public String getUsername() {
return username;
} public void setUsername(String username) {
this.username = username;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} }

二.属性驱动

普通驱动如果是大项目表单提供过多元素action会比较乱,属性驱动就是将表单提供的元素封装到一个对象中,这个对象作为action中的属性,

在前端页面表单中需要提交的元素name统一写成 对象.name

案例:

实体类User

 package com.ahd.entity;

 public class User {
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}

HelloAction:

 package com.ahd.action;

 import com.ahd.entity.User;
import com.opensymphony.xwork2.ActionSupport; public class HelloAction extends ActionSupport{
private User user; @Override
public String execute() throws Exception {
// TODO Auto-generated method stub
System.out.println(user.getUsername()+user.getPassword());
return super.execute();
} public User getUser() {
return user;
} public void setUser(User user) {
this.user = user;
} }

index.jsp:

   <body>
<form action="hello.action">
用户名:<input type="text" name="user.username"/><br/>
密 码:<input type="password" name="user.password"/><br/>
<input type="submit" value="submit"/>
<input type="reset" name="reset"/><br/>
</form> </body>

strust.xml:

 <?xml version="1.0" encoding="UTF-8"?>

 <!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd"> <struts>
<package name="Hello" extends="default-struts" namespace="">
<action name="Hello" class="com.ahd.action.HelloAction">
<result>/success.jsp</result>
</action>
</package>
</struts>

Struts2_属性驱动的更多相关文章

  1. struts2 中属性驱动(其实就是struts2 action 中处理 request 的参数【old 方式servlet api 封装数据到javabean中(or beanutils)】),这里属性驱动是新方式

    1.属性驱动 a\  一般的set public class UserAction extends ActionSupport { private String username; private S ...

  2. sruts2:单个文件上传,多个文件上传(属性驱动)

    文件上传功能在Struts2中得到了很好的封装,主要使用fileUpload上传组件. 1. 单个文件上传 1.1 创建上传单个文件的JSP页面.显示提交结果的JSP页面 uploadTest1.js ...

  3. Struts2的属性驱动与模型驱动的区别

    1.Struts2的属性驱动. Struts2的属性驱动指的是在action中JSP页面的每一个form中的name都对应在action中有一个属性与之对应.看下面代码片段: <form act ...

  4. strus2中获取表单数据 两种方式 属性驱动 和模型驱动

    strus2中获取表单数据 两种方式 属性驱动 和模型驱动 属性驱动 /** * 当前请求的action在栈顶,ss是栈顶的元素,所以可以利用setValue方法赋值 * 如果一个属性在对象栈,在页面 ...

  5. Struts2中属性驱动与模型驱动

    属性驱动: 1.概念 能够利用属性驱动获取页面表单元素的内容 2.步骤 1.在action中声明属性,属性的名称和页面元素中name属性的值保持一致 2.action中的属性必须有set和get方法 ...

  6. Struts2属性驱动与模型驱动

    为什么要使用属性驱动和模型驱动 struts2与struts很大的不同点在于,struts的execute方法提供了HttpServletRequest和HttpServletResponse方法在获 ...

  7. Struts2 属性驱动、模型驱动、异常机制

    模型驱动使用单独的VO(值对象)来封装请求参数和处理结果,属性驱动则使用Action实例来封装请求参数和处理结果. 一.使用模型驱动 1.login.action采用模型驱动模式实现,采用模型驱动时必 ...

  8. Struts2(四)属性驱动和模型驱动

    一.概述 所谓模型驱动,就是使用单独的JavaBean实例贯穿整个MVC流程,与之相对应的属性驱动方式,则使用属性作为贯穿MVC流程的信息携带者.属性无法独立存下,它必须依附于一个对象,这个对象就是A ...

  9. 2015年传智播客JavaEE 第168期就业班视频教程16-框架结构测试(加载全spring配置文件)+struts2属性驱动测试

    模块的规范化我们已经做完了,下面我们要做我们的功能了. 如果是模型驱动就是name="对应model的name" 如果用属性驱动的话,必须得把表现层(Action类)里面映射的用于 ...

随机推荐

  1. program--历史故事

  2. Java并发编程:Lock(锁)

    一.synchronized的缺陷 synchronized是java中的一个关键字,也就是说是Java语言内置的特性.那么为什么会出现Lock呢? 在上面一篇文章中,我们了解到如果一个代码块被syn ...

  3. SpringBoot条件注解@Conditional

    最近项目中使用到了关于@Conditional注解的一些特性,故写此文记录一下 @Conditional是啥呀? @Conditional注解是个什么东西呢,它可以根据代码中设置的条件装载不同的bea ...

  4. Java与Python比较心得01

    Java 可以int + 字符串(str)输出,python则只可以用逗号 , 连接,或者字符串 + 字符串或int + int否则python会报错如下图:

  5. HTTP 协议服务器相关概念

    1.HTTP/1.1规范允许一台HTTP服务器搭建多个Web站点,即物理层面只有一台服务器,使用虚拟主机功能,可就假想有多台服务器. 在相同IP地址下,由于虚拟主机可以寄存多个不同主机名和域名的网站, ...

  6. Web发展简史(精编故事版,贤来给你讲故事)

    Web发展简史 一. Web发展简史之隔壁老王的故事 有一个人叫隔壁老王,老王有一个爱好就是爱看电影.有一天,这个隔壁老王想看一部电影,可是电脑里面存储的电影太多了,他费了老大劲才从里面找到,觉得很不 ...

  7. 第七篇: 消息总线(Spring Cloud Bus)

    Spring Cloud Bus 将分布式的节点用轻量的消息代理连接起来.它可以用于广播配置文件的更改或者服务之间的通讯,也可以用于监控.本文要讲述的是用Spring Cloud Bus实现通知微服务 ...

  8. 【PHP篇】数组

    1.简介:数组存储方式是键值对 2.声明:$数组变量名=array(2,3,9,3,“546”,“yy”=>”hhhh”,100=>”uu100”): 3.下标注意:可为“字符串”或者整数 ...

  9. Centos7单机部署ELK+x-pack

    ELK分布式框架作为现在大数据时代分析日志的常为大家使用.现在我们就记录下单机Centos7部署ELK的过程和遇到的问题. 系统要求:Centos7(内核3.5及以上,2核4G) elk版本:6.2. ...

  10. k8s~术语解释

    文章参考:https://www.kubernetes.org.cn 简介 Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简 ...