一个struts2验证框架的一个小问题,高分求助 50
在写一个struts2的验证框架,现在最简单的部分出错。问题就是写的xml文件好像没有发挥作用,提交后,直接跳到了action里,没有经过xml的验证。下面是代码,点击提...
在写一个struts2的验证框架,现在最简单的部分出错。问题就是写的xml文件好像没有发挥作用,提交后,直接跳到了action里,没有经过xml的验证。下面是代码,点击提交后,就直接转到了action里面,然后跳到了success.jsp里面。为什么验证框架没有起到作用呢。
以下是写的代码,大家看看哪里有问题:
1.action部分:HelloWorld.java
package ch2.helloworld;
import com.opensymphony.xwork2.ActionSupport;
public class HelloWorld extends ActionSupport {
private String msg;
public String getMsg(){
return msg;
}
public void setMsg(String msg){
this.msg=msg;
}
}
2.验证xml文件:HelloWorld-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="msg">
<field-validator type="required">
<param name="trim">true</param>
<message>username shoudld not be blank!</message>
</field-validator>
</field>
</validators>
3.struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name="bookcode" extends='struts-default'>
<action name="HelloWorld" class="ch2.helloworld.HelloWorld">
<result name="success">/success.jsp</result>
</action>
</package>
</struts>
4.HelloWorld.jsp
<body>
<s:fielderror cssStyle="color:red;"/>
<s:form action="HelloWorld" >
<s:textfield name="msg" label="输入信息" ></s:textfield>
<s:submit name="submit" label="提交"></s:submit>
</s:form>
</body>
5.success.jsp
<body>
hello struts2 <br>
</body> 展开
以下是写的代码,大家看看哪里有问题:
1.action部分:HelloWorld.java
package ch2.helloworld;
import com.opensymphony.xwork2.ActionSupport;
public class HelloWorld extends ActionSupport {
private String msg;
public String getMsg(){
return msg;
}
public void setMsg(String msg){
this.msg=msg;
}
}
2.验证xml文件:HelloWorld-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="msg">
<field-validator type="required">
<param name="trim">true</param>
<message>username shoudld not be blank!</message>
</field-validator>
</field>
</validators>
3.struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name="bookcode" extends='struts-default'>
<action name="HelloWorld" class="ch2.helloworld.HelloWorld">
<result name="success">/success.jsp</result>
</action>
</package>
</struts>
4.HelloWorld.jsp
<body>
<s:fielderror cssStyle="color:red;"/>
<s:form action="HelloWorld" >
<s:textfield name="msg" label="输入信息" ></s:textfield>
<s:submit name="submit" label="提交"></s:submit>
</s:form>
</body>
5.success.jsp
<body>
hello struts2 <br>
</body> 展开
5个回答
展开全部
有几个问题,第一个 ,你的jsp页面,提交到action后是否需要指定一个执行的方法。
那么这样的话 你的struts.xml 中 action中就差一个 method=""
第二个,我在你的action中没有看到任何处理方法,包括execute().
也就是如果你的struts.xml中如果不指定method属性,默认是execute()
你仔细检查下,看是不是这样。!
那么这样的话 你的struts.xml 中 action中就差一个 method=""
第二个,我在你的action中没有看到任何处理方法,包括execute().
也就是如果你的struts.xml中如果不指定method属性,默认是execute()
你仔细检查下,看是不是这样。!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<field-validator type="rquiredstring"></filed-validator>
追问
这个我也改过,rquiredstring这个不行,我才换的required。还是不明白哪里错了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、<s:form action="HelloWorld" >请求的方法好像有问题
2、struts.xml没由method的方法
3、你在确定一下web.xml文件是否可以改名
2、struts.xml没由method的方法
3、你在确定一下web.xml文件是否可以改名
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
HelloWorld-validation.xml和HelloWorld.java应该放到同一个包下,你试一下
追问
是在一个包里面的 这个没有错误
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在struts.xml中的struts标签里加上<include file="HelloWorld-validation.xml" />
更多追问追答
追问
是放到package里面,还是外面。这个做法倒是没有见过 ,我试试。
追答
放在package外边 你试试吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询