`

actiion input 属性

阅读更多

struts-config.xml中的对action的input属性的配置的目的就是用于validate失败后返回。
可以查看org.apache.struts.action.RequestProcessor中的源码,在processValidate()方法中有这样一段: 

  1. protected boolean processValidate(ActionMapping mapping,
  2.         ActionForm formInstance, HttpServletRequest request,
  3.         HttpServletResponse response)
  4.         throws IOException, ServletException {
  5.         ……
  6.         ActionErrors errors = formInstance.validate(mapping, request);
  7.         if ((errors == null) || errors.empty()) {
  8.             if (debug >= 1)
  9.                 log("  No errors detected, accepting input");
  10.             return (true);
  11.         }
  12.         ……
  13.         String uri = mapping.getInput();
  14.         ……
  15.         RequestDispatcher rd = getServletContext().getRequestDispatcher(uri);
  16.         ……
  17.         rd.forward(request, response);
  18.         return (false);
  19.     }

mapping是一个ActionMapping对象,在ActionServlet对struts-config.xml进行解析时植入的。mapping.getInput()就返回该mapping对象对应的input属性。

 


*(************关于input属性的另外一个问题*************************************

当前页是动态页面,加了参数才生成的,当前页的表单认证失败后要回到当前页但是INPUT的路径是写在 struts-config.xml里的  怎么给后面加动态的参数?

 

>> .do后面可以加参数,顺便把struts配置里面对应的redirect设置为"true",就可用xx.do?sdasd=sdsad之类。)

<< 参数是变量。。。在form里的validate方法只会到input的路径上啊
>>INPUT是form验证不通过返回的地址  如果这个地址里面有参数 怎么办? 是动态的

<<  我这两天考虑了一下 不知道这样可行否

      首先当前页面是根据那个参数动态生成  把需要显示的内容放到SESSION里

     然后 input就写当前页面的URL  把后面标志当前内容的参数去掉 这样表单验证失败回到当前页面

     由于显示的内容在session里 所有不需要那个参数也就能正常的显示了

     这里还要在Action里做判断 如果有参数 那么针对这个参数从生成DTO 放到session

    里,如果参数为NULL,直接 forward回这个页面,这个request肯定是验证失败INPUT过来的

    这时SESSION已经有存放显示内容的 DTO,故正常显示

   不知道这样可行否 我把我的改改 手里的项目 由于都是这种带参数的 所以表单验证都放到Action里了.

>> 不过你这种做法是不是的选择个适当时机把seesion里的值去掉,,要不session太大了

<< 我感觉你最好不要用SESSION这东西来存这个,这是一种浪费!你最好在用完之后清除掉!这样最保险!

      我也遇到这样的问题,应该有更好的解决办法.

分享到:
评论

相关推荐

    JavaScript获取网页表单action属性的方法

    JavaScript获取网页表单的action属性是一种常用的操作,通常用于获取表单提交时要发送到的URL地址。在Web开发中,表单是用来收集用户输入数据并将其发送到服务器的HTML元素。action属性指定了表单提交后,服务器处理...

    input 标签的属性

    ### Input 标签的属性详解 #### 一、概述 在HTML中,`&lt;input&gt;`标签是最常用的表单元素之一,用于收集用户输入的数据。它通过`type`属性定义了不同的输入控件类型,比如文本框、密码框、按钮等。本文将详细介绍`...

    HTML5表单中新增的input属性3.pdf

    HTML5为表单带来了许多增强的功能,其中关键的一环是新增的input属性。这些属性使得表单输入更加灵活,提供了更好的用户体验和数据验证。以下是四个主要的新增属性的详细说明: 1. **multiple** 属性: 在HTML5...

    HTML5表单中新增的input属性2.pdf

    - `formaction`: 此属性允许为`&lt;input type="submit"&gt;`或`&lt;input type="image"&gt;`元素指定一个不同的处理表单动作的URL,覆盖了`&lt;form&gt;`标签的`action`属性,这意味着同一个表单的不同提交按钮可以有不同的目标地址...

    HTML5(软件品牌)-1期 13 教学课件_单元5_HTML5的input属性.pdf

    - formaction:覆盖表单的action属性,决定数据提交的URL。 - formenctype:改变表单数据的编码类型。 - formmethod:覆盖表单的提交方法(GET或POST)。 - formnovalidate:防止表单验证,允许提交不合法的数据...

    表单中有name为action的元素时,取form的属性action杯具了

    然而,如果在表单内部存在一个名为`action`的输入元素(例如`&lt;input&gt;`或`&lt;button&gt;`),这可能会引发一些意外的行为,正如标题“表单中有name为action的元素时,取form的属性action杯具了”所描述的问题。 当我们...

    input资源的格式

    在网页设计与开发中,`input`元素扮演着极其重要的角色,它允许用户输入数据,并通过不同的属性实现多种功能。本文将详细解析`input`的不同类型及其在实际开发中的应用技巧。 #### 二、`input`类型详解 ##### 1. `...

    Android input设备注册发送key

    在硬件抽象层(HAL)中,你需要创建一个`input_device.h`头文件,定义设备的属性,如设备名称、类型和支持的键值。然后在对应的`input_device.c`或`.cpp`文件中实现设备的初始化和事件处理函数。例如,如果我们要添加...

    HTMLFORM表单,input标签的说明.pdf

    `&lt;form&gt;` 标签是创建表单的基础,它的 `action` 属性定义了处理表单数据的服务器端脚本,而 `method` 属性则指定了数据发送的方式,如 "GET" 或 "POST"。 在表单中,`&lt;input&gt;` 标签是最常用的控件之一,它可以以...

    一个struts的action跳转大全

    如果`validate()`方法返回非空的`ActionErrors`对象,则表明表单验证未通过,此时会转向由`input`属性所指定的URI;反之,如果返回的是空的`ActionErrors`对象,则表示表单验证成功,这时将执行`Action`类的`execute...

    1HTML5表单属性

    #### 三、新的input属性 ##### 1. **autocomplete** **定义与用法**: - 此属性与前述 `&lt;form&gt;` 中的 `autocomplete` 类似,但仅应用于 `&lt;input&gt;` 元素。 - 可以通过设置为 "on" 或 "off" 来控制是否启用自动补全...

    解决form中action属性后面?传递参数 获取不到的问题

    这是因为当`method`是`GET`时,浏览器只会处理表单内的`&lt;input&gt;`、`&lt;select&gt;`、`&lt;textarea&gt;`等元素的`name`与`value`作为请求参数,而不会考虑`action`属性后面手动添加的参数。 要解决这个问题,我们需要将`method...

    html表单form元素+各种input元素+常用元素综合案例.

    `action`属性指定了处理表单数据的URL,可以是服务器上的脚本或者同一页面内的JavaScript函数。`method`属性则规定了数据发送到服务器的方式,通常是`GET`或`POST`。 `&lt;input&gt;`元素是表单中最常见的控件,用于接收...

    使用placeholder属性设置input文本框的提示信息

    form action="demo_form.asp" method="get"&gt; &lt;input type="search" name="user_search" placeholder="Search W3School" /&gt; &lt;input type="submit" /&gt; &lt;/form&gt; 定义和用法 placeholder 属性...

    js form action动态修改方法.docx

    - **动态创建和添加表单**:如果需要动态创建表单并设置`action`,可以使用`document.createElement('form')`创建一个新的`&lt;form&gt;`元素,然后设置它的`action`属性和其它属性,最后添加到DOM树中。 - **动态移除...

    struts1属性详解

    以下是对`struts1.x_action`属性的详细解释: 1. **attribute**: `attribute`属性用于指定`ActionForm`对象在请求或会话中的存储名称。`ActionForm`是用来收集用户从表单提交的数据的类。如果没有设置`attribute`,...

    struts2中的action.doc

    Struts2框架通过ActionContext获取到request对象,并从中提取用户输入的数据,将其赋值给Action的相应属性。 4.3.2 基本的数据对应方式 Struts2提供了两种主要的数据绑定方式:属性驱动(FieldDriven)和模型驱动...

    JS调用Struts中的Action

    这种方法同样通过提交表单来触发Action,但这里直接调用了表单的`submit`方法,不需要显式修改表单的`action`属性。 ##### 4. **参数传递** 在调用Struts Action时,经常需要向Action传递参数。这些参数可以是...

    实现struts框架简单功能

    例如,如果客户端发送了一个名为`input`的参数,Struts2会自动将其值赋给Action中的`input`属性。在Action的execute方法中,你可以访问这些属性来执行业务逻辑。 至于拦截器,Struts2提供了一种强大的机制,可以在...

    input file图片上传即时预览

    在`change`事件中,获取用户选择的文件,然后使用FileReader对象的`readAsDataURL`方法读取文件内容,并将其转换为Base64编码的URL,最后将这个URL赋值给`&lt;img&gt;`元素的`src`属性,完成预览。 ```javascript ...

Global site tag (gtag.js) - Google Analytics