Struts2.0深入学习 命名空间,模型驱动,表单重复提交

Struts2深入探索:

1,package中的abstract="true"表示该package里面不能包函action元素

2,package中若指定namespace="/mynamespace"则:

<!--
包的namespace要以"/"开头,对应的页面的路径前面也加上/mymengya/ActionName.action
如:<s:form action="/mymengya/register.action" method="post" theme="simple">
-->
<package name="mengya" extends="struts-default" namespace="/mymengya">

<action name="register"
class="com.mengya.action.RegisterAction">
<result name="success">/show.jsp</result>
<result name="input">/index.jsp</result>
<result name="invalid.token">/index.jsp</result>
<interceptor-ref name="token"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>

</action>

</package>

在页面form的action中也要加上/mynamespase并且还要加上后缀action(不管是不是用的struts标签)

 

3,模型驱动

/**
* 模型Bean
* @author 张明学
*
*/
public class RegisterBean {
private String username;

private String password;

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}

public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}

}
Action则要接实com.opensymphony.xwork2.ModelDriven接口:
public class RegisterAction extends ActionSupport implements ModelDriven {

/**
* 模型驱动,该模型Bean必须实例化
*/
private RegisterBean loginBean = new RegisterBean();

public Object getModel() {
return loginBean;
}

@Override
public String execute() throws Exception {

return SUCCESS;
}

}

时间: 2024-09-17 04:08:25

Struts2.0深入学习 命名空间,模型驱动,表单重复提交的相关文章

一脸懵逼学习Struts数据校验以及数据回显,模型驱动,防止表单重复提交的应用。

1:Struts2表单数据校验: (1)前台校验,也称之为客户端校验,主要是通过Javascript编程的方式进行数据的验证. (2)后台校验,也称之为服务器校验,这里指的是使用Struts2通过xml配置的方式进行表单数据的校验. (3)代码方式验证Action中所有的方法:代码方式验证Action中指定的方法:xml方式验证Action中所有的方法:xml方式验证Action中指定的方法: 2:代码方式验证Action中所有的方法(自己记得导jar包和我配置web.xml文件,自己脑补吧):

Struts2框架学习之七:避免表单重复提交

前言 防止表单重复提交在web开发中是一个经常遇到的问题,一般来避免重复提交有两种方式:客户端JavaScript代码实现和服务端代码实现.这里主要介绍服务端的实现方式.在服务端实现表单重复提交的基本原理是:通过创建一个Session对象,并产生一个令牌值,将这个令牌值作为隐藏域随表单一起发送给客户端,同时在Session中保存令牌值.在用户提交表单的时候判断提交参数的令牌值与Session中的是否相等,如果相等则清除,不再使用这个令牌值,,然后执行后续的处理:如果两者不相等,表示已经提交过表单

struts2之防止表单重复提交

struts.xml配置文件 <?xml version="1.0" encoding="utf-8" ?><!doctype struts public "-//apache software foundation//dtd struts configuration 2.0//en" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts&

java Struts2防止表单重复提交代码

先要配置拦截器,拦截器用于控制重复提交内容!其实原理很简单,就是在表单内生成一个序列,判断是否为新的序列,如果是之前的序列,则证明是一个重复提交内容!  代码如下 复制代码 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN&q

Struts2防止表单重复提交

最近开发中涉及到了表单重复提次的问题,通过研究做个总结.   防止表单重复提交主要用的到 标签: <s: token /> 拦截器: <interceptor-ref name="token" /> 默认的返回值: <result name="invalid.token">/input.jsp</result>   在页面加载时<s:token />产生一个GUID(Globally Unique Iden

Struts2 &amp;amp;lt;s:token&amp;amp;gt;防止表单重复提交 &amp;amp;nbsp; %{}

token是为了防止表单重复提交,token 原理大致为: 1:显示表单的那个 action 中使用 createToken() 生成一个随机的 token值,并存放在服务端(session或者cache中),并且传递一份到页面中 2:表单页面使用一个隐藏表单域获取后端传过来的 token值,该表单页面提交时会将此 token 值一同提交到后端 3:在表单页面提交到的 actioin 中使用 validateToken() 将服务端与表单隐藏域中的 token 值进行对比,如果服务端存在 tok

JSP学习之------&amp;gt;客户端防表单重复提交和服务器端session防表单重复提交

1.什么叫表单重复提交:      所谓表单重复提交,是指用户通过多次点击提交按钮或多次刷新表单提交页面等造成用户表单重复提交的现象 2.表单重复提交有哪些情况:      (1)用户在程序提交表单的时间段里多次提交表单      (2)重复刷新提交后的表单      (3)用户点击浏览器回退按钮,然后再次提交 3.如果解决表单重复提交:     (1)方法1:客户端防表单重复提交:  一般通过js代码防止第一种情况的发生,对于第二种和第三种的情况很难避免,并且稍微有经验的用户可以通过去掉页面j

php解决和避免form表单重复提交的几种方法_php技巧

前言 为什么要避免form表单被重复提交呢?因为我们不想让我们的服务器重复处理没必要的数据,同时我们也是避免我们的数据库产生重复的数据,避免表单重复提交也是让我们的网站更安全的一种表现. 先看一下有哪些情况下回导致表单重复提交呢,知道哪些情况下可能会出现表单重复提交就可以从根源处理表单重复提交的情况了. 下面的情况就会导致表单重复提交:       点击提交按钮两次.       点击刷新按钮.       使用浏览器后退按钮重复之前的操作,导致重复提交表单.       使用浏览器历史记录重复

Sturt2做表单重复提交

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <!-- 默认

解决php表单重复提交实现方法_php技巧

重复提交是我们开发中会常碰到的一个问题,除了我们使用js来防止表单的重复提交,同时还可以使用php来防止重复提交哦. <?php /* * php中如何防止表单的重复提交 */ session_start(); if (empty($_SESSION['ip'])) {//第一次写入操作,判断是否记录了IP地址,以此知道是否要写入数据库 $_SESSION['ip'] = $_SERVER['REMOTE_ADDR']; //第一次写入,为后面刷新或后退的判断做个铺垫 //...........