-
struts2的validate在使用过程中的一个问题30
在项目中有一个添加坐席的功能:
1、在进入添加页面:salesadd.jsp页面之前,要调用一个salesAdd.do来获取小组和角色列表以供在salesadd.jsp进行选择。
2、salesadd.jsp页面填写完成以后,提交给salesAddDo.do来进行数据库的操作,在提交之前,要进行一次表单验证,用了STRUTS2的validation。
3、在struts配置文件的配置代码:
<action name="addSales" class="salesAction" method="addSales">
<result>/sales/salesadd.jsp</result>
</action>
<action name="addSalesDo" class="salesAction"
method="addSalesDo">
<result type="redirect-action">listSales.do</result>
<result name="input" type="chain">
<param name="actionName">addSales</param>
<param name="namespace">/sales</param>
</result>
</action>
4、SalesAction-addSalesDo-validation.xml的配置:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="name">
<field-validator type="requiredstring">
<message>请输入姓名!</message>
</field-validator>
</field>
<field name="loginName">
<field-validator type="requiredstring">
<message>请输入账号!</message>
</field-validator>
</field>
<field name="password">
<field-validator type="requiredstring">
<message>请输入密码!</message>
</field-validator>
</field>
<field name="conPassword">
<field-validator type="requiredstring">
<message>请输入确认密码!</message>
</field-validator>
<field-validator type="fieldexpression">
<param name="expression">(password eq conPassword)</param>
<message>密码和确认密码不一致!</message>
</field-validator>
</field>
<field name="groupId">
<field-validator type="requiredstring">
<message>请选择小组!</message>
</field-validator>
</field>
<field name="roleId">
<field-validator type="requiredstring">
<message>请选择角色!</message>
</field-validator>
</field>
</validators>
5、问题:在salesadd.jsp表单提交,执行salesAddDo.do验证失败的时候,提示:
# Messages: No result defined for action com.kcc.sales.action.SalesAction and result input
无法正常跳转到salesadd.jsp页面。
6、解决5的问题:
<action name="addSales" class="salesAction" method="addSales">
<result>/sales/salesadd.jsp</result>
<result name="input">/sales/salesadd.jsp</result>
</action>
又出现新的问题:
在跳转到的salesadd.jsp页面,无法取到小组和角色列表。
7、如果在struts中配置:
<action name="addSalesDo" class="salesAction"
method="addSalesDo">
<result type="redirect-action">listSales.do</result>
<result name="input" type="redirect-action">addSales</result>
</action>
在salesadd.jsp中又无法获取fieldError的提示信息。
寻求帮助,谢谢。
问题补充:
SalesAction-addSalesDo-validation.xml和SalesAction在同一个包下面。
问题补充:
SalesAction-addSalesDo-validation.xml是针对某个方法来进行验证的。
问题补充:
kyo100900,很感谢你的回答,可以看步骤3。最开始就是用的chain
问题补充:
hua0424,您好,用chain,出现的问题是第五,第3中的配置就是chain
问题补充:
qinzy1983您好,我如果直接返回到/sales/salesadd.jsp 页面,我将获取不到待选择的小组和角色。
问题补充:
hua0424,您好,我增加value,还是报错:
# Messages: No result defined for action com.kcc.sales.action.SalesAction and result input
和第五步骤的报错一样
问题补充:
问题解决了。nnd,研究了差不多一天的时间:修改如下:
<action name="addSales" class="salesAction" method="addSales">
<interceptor-ref name="chain" />
<interceptor-ref name="basicStack" />
<result>/sales/salesadd.jsp</result>
</action>
<action name="addSalesDo" class="salesAction"
method="addSalesDo">
<result type="redirect-action">listSales.do</result>
<result name="input" type="chain">
<param name="actionName">addSales</param>
<param name="namespace">/sales</param>
</result>
</action>
也就是增加了一个:
<interceptor-ref name="chain" />
<interceptor-ref name="basicStack" />2008年6月02日 11:10
5个答案 按时间排序 按投票排序
-
<result name="input" type="chain">
<param name="actionName">addSales</param>
<param name="namespace">/sales</param>
</result>
改成
<result name="input" type="dispatcher">
/sales/salesadd.jsp
</result>
2008年6月02日 13:21
-
<result name="input" type="chain">
<param name="actionName">addSales</param>
<param name="namespace">/sales</param>
</result>
这个不成功是因为你没有指定这个result的VALUE,你仅仅是指定了actionName,namespace。这些都不重要,最重要的返回结果value没有指定,改成
<result name="input" type="chain">
<param name="actionName">addSales</param>
<param name="namespace">/sales</param>
<param name="value">addSales</param>
</result>
其实<param name="actionName">addSales</param>
<param name="namespace">/sales</param>
不是必须的2008年6月02日 13:15
-
将
<result name="input" type="redirect-action">addSales</result>
改成<result name="input" type="chain">addSales</result>
试试2008年6月02日 12:55
-
validators這個配置文件的名字必須是 salesAction-validation.xml 且必須和salesAction這個類在一個包里面, 你是這樣的嗎?
2008年6月02日 11:28
相关推荐
你提到的`TestValidate`可能是一个测试用例,用于演示如何在Struts2中使用`validate`进行数据验证。通常,它会包括一个Action类,里面包含验证方法,以及对应的配置文件条目。测试时,模拟用户输入,检查验证是否按...
2. **验证方法**:在ActionForm子类中,你需要定义一个`validate`方法。此方法的签名通常是`public ActionErrors validate(HttpServletRequest request)`。在这个方法里,你将对每个表单字段进行检查,如果发现不...
这个项目的名称暗示了它可能用于演示如何在Struts应用中使用验证代码。 `www.pudn.com.txt`可能是从网站pudn.com下载的文档,通常这类文件会包含一些附加信息,如下载来源、版权声明等,也可能包含了与Struts验证...
本文将深入探讨如何利用Struts2框架与jQuery.validate插件来实现一个实用的用户名唯一性检查功能,确保新注册的用户名在数据库中不存在,从而避免重复注册的问题。 ### Struts2与jQuery.validate框架简介 #### ...
STRUTS和WebWork都是Java Web开发中的两个著名框架,它们在处理表单验证(VALIDATE)时有各自的特点和差异。这篇博文将探讨这两者在验证机制上的区别,帮助开发者更好地理解它们的工作原理和适用场景。 STRUTS是...
在STRUTS中,为了启用表单验证功能,你需要创建一个FormBean类,并让它继承自`org.apache.struts.validator.ValidatorForm`。例如,创建名为`GtsfFrm`的FormBean,包含一个名为`hh`的属性,用于存储用户输入的户号...
2. **添加验证方法**:在ActionForm子类中,你需要为每个需要验证的字段添加一个对应的`validate`方法。这些方法通常以`validateField`的形式命名,例如`validateName`、`validateEmail`等。在这些方法内部,你可以...
- 为了克服这些问题,Apache Software Foundation推出了Struts2,这是一个全新的框架,虽然名称相似,但实际上与原始的Struts框架有着本质的区别。 - **Struts2的特点**: - 更强大的MVC架构支持。 - 内置拦截器...
Struts的验证框架Validate是Apache Struts框架中的一个重要组成部分,主要用于处理用户输入的数据验证。在Web应用程序中,数据验证是确保用户提交的信息符合业务规则的关键步骤,防止非法数据进入数据库或引发程序...
在Struts的第六讲中,我们主要探讨了如何有效地利用Validate进行数据校验,以确保用户提交的信息符合应用程序的要求。 Struts的验证框架提供了一种声明式的方式来定义验证规则,这些规则可以在ActionForm类的子类中...
Struts2是一个强大的MVC(Model-View-Controller)框架,它在Java Web开发中广泛使用,提供了丰富的功能和灵活性。下面将详细讲解Struts2的一些核心知识点。 **一.Struts2核心文件:struts.xml配置** Struts2的...
在这个场景中,我们要实现一个登录功能,并且使用Struts2的validate方法来对用户输入的数据进行验证。下面我们将详细讲解这个过程。 首先,登录页面通常是一个JSP文件,它包含两个主要的输入字段:用户名和密码。在...
- **Struts2**: 在Struts2中,为每个HTTP请求创建一个新的Action实例,从而避免了线程安全问题。这一改变极大地简化了代码编写,并降低了出错的可能性。尽管servlet容器会为每个请求创建多个临时对象,但并不会对...
- **Struts 2**:每个请求都会创建一个新的Action实例,消除了线程安全问题,同时也减少了开发者在处理并发请求时需要考虑的问题。 #### 3. Servlet依赖方面的对比 - **Struts 1**:Action的方法签名中包含了`...
2. **异常处理与错误封装**:如果类型转换过程中遇到问题,如无法正确转换数据类型,会抛出异常。这些异常会被捕获并封装到`fieldError`对象中,存储在`ActionContext`中,以便后续的拦截器处理。 3. **反射调用...
在这个名为`StrutsJqueryDemo`的项目中,开发者创建了一个简单的示例,展示了如何整合jQuery和Struts2。可能包括一个Action类处理请求,一个JSP页面用于展示结果,以及一些配置文件如`struts.xml`。通过运行这个Demo...
Struts2是一个强大的Java web框架,它为开发者提供了丰富的功能,包括处理HTTP请求、展现页面以及管理业务逻辑。在Struts2中,表单标签是用于构建用户界面的重要组件,它们帮助开发者创建交互式和动态的网页。这篇...
在深入探讨Struts框架中的`struts-validate`概念前,我们先来理解一下Struts框架本身。Struts是一个开源的MVC(Model-View-Controller)框架,用于简化Java Web应用程序的开发。它提供了一种结构化的方法来构建Web...
- **Struts2**:每个请求都会创建一个新的Action实例,消除了线程安全问题。这种模式使得Action设计更加简单直接,减少了因线程安全考虑带来的额外工作。 #### 三、Servlet依赖的对比 - **Struts1**:Action类直接...
在探讨Struts2与Struts1的区别时,我们需深入理解这两个框架的设计理念、架构模式以及它们在实际应用中的表现差异。以下将从多个角度详细分析这两种流行Java Web框架的不同之处。 ### 1. **Action类的区别** #### ...