一个action中某些方法中无法输出form表单提交action值

51CTO视频课程推荐:
4787人学习
15075人学习
1283人学习
4899人学习
查看:2607|回复:3
&form&&action=&forum.php?mod=topicadmin&action=moderate&fid=2&infloat=yes&nopost=yes&&
&input type=&hidden& name=&optgroup&&
&input type=&hidden& name=&operation&&
在这样的一个表单中,form的action属性值中带有参数。有两个问题:
1.这些参数是如何传递的?传递给哪个页面?
2.下面的input提交的值是传递给哪个页面?
action后面的url里面的参数会在forum.php 这个页面通过$_GET['参数'] 这样得到,input中的数据也会在forum.php这个页面,具体通过$_POST还是$_GET获取需要看form里面method设置的是post还是get
你没有指定method,这个表示是哪种方式传递,很重要
GET 得到的是action里面的参数 POST 接收的是&&你的method为POST 的时候的表单时数据,。。Struts2中Action从表单取值并且存到Web元素中(session)Stru
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
Struts2中Action从表单取值并且存到Web元素中(session)
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口$a = $_GET['type'];
print_r($a);
提示:Notice: Undefined index: type in E:\php\post1.php on line 2在form action中传递的值不能被$_GET或者$_POST获取到么?
action="post1.php?type=del" method="GET"&
夜深了还写程序, 这时精神不集中, 很容易犯错。
引用 1 楼 coolesting 的回复:
action="post1.php?type=del" method="GET"&
引号是刚才写丢了,我加上去了,还是报一样的错误
&form id="1" action="post1.php" method="GET"&
&input type="hidden" name="type" value="del"&
&input type="submit" value="post"&
用GET方式提交表单时,会忽略action属性值(url)中的参数。
&form id="1" action="post1.php?type=del" method="POST"&
&input type=submit value="post"&
用POST方式提交或者直接访问服务器上post1.php?type=del,都可以获取$_GET['type']
引用 5 楼 t5500 的回复:
HTML code&form id="1" action="post1.php?type=del" method="POST"&
&input type=submit value="post"&&/form&用POST方式提交或者直接访问服务器上post1.php?type=del,都可以获取$_GET['type']
我也测试了下,像这样写是没有问题的、如果from是位于case中的、提交action的值无法被另外一个页面的$_GET获取到、代码如下、大家可以看下post.php
switch($_GET['acticon'])
case('add_servicerecord'):
echo '&form id="serecord" action="post1.php" method="POST"&';
echo '&input type="hidden" name="act" value="add_"&';
echo '&input type="submit" value="queding"&';
echo '&/form&';
case('add_repairrecord'):
echo "添加返修记录";
[code=PHP]
$a = $_GET['act'];
print_r($a);
我勒个去啊。。。这时候你要通过$_POST['act']获取数据!认真看看关于method属性的说明:
switch($_GET['acticon'])--------是$_GET['action'] 吧,不是acticon
传值的已经改好了,但是另一我通过$_POST 或者$_GET 无法获取到当前页了,导致我的翻页链接不能用了我把两个页面的全部源码贴上来吧,还希望T5500帮忙看看ServiceRecord.php
&!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&
&html xmlns=" http://www.w3.org/1999/xhtml"&
&style&a {text-decoration:none}a:hover {color:text-decoration:none}&/style&
&link rel="stylesheet" href="css/style.css" type="text/css"&
error_reporting(E_ALL^ E_NOTICE);
require("db/db_connect.php");
switch($_POST['act'])
case('add_servicerecord'):
//有POST则提交POST然后LIST,没有则LIST
if ($_POST['Uniqueid'])
if (!$conn)
die('Cant not connect mysql'. mysql_error());
$Insert_ServiceRecord = "INSERT INTO SERVICE_RECORD (UNIQUEID,BAR_NAME,BOSS_NAME,TEL,BAR_ADDRESS,Q_TYPE,DESCRIPTION,ismember,BONUS,status)
VALUES ('$_POST[Uniqueid]','$_POST[Barname]','$_POST[Bossname]','$_POST[Tel]','$_POST[Baraddress]','$_POST[Qtype]','$_POST[Description]','1','10','0')";
if(!mysql_query($Insert_ServiceRecord,$conn))
die("Insert error".mysql_error());
'&div id="sidebar_right_select_result"&';
'&table id="tb1"&';
'&th width="80px"&注册号&/th&';
'&th width="70px"&客户名称&/th&';
'&th width="160px"&客户地址&/th&';
'&th width="90px"&电话&/th&';
'&th width="70px"&状态&/th&';
'&th width="80px"&处理人&/th&';
'&th width="70px"&会员用户&/th&';
'&th width="35px"&详细&/th&';
'&th width="35px"&编辑&/th&';
'&/table&';
if (isset($_POST['page']))
//获取当前页
$page = $_POST['page'];
$page = 1;
$pagesize = 17;
$sql = 'select count(*) from service_R';
$result1 = mysql_query($sql);
$rows1 = mysql_fetch_row($result1);
$totallist = $rows1[0];
//获取总页数
if($totallist){
if ($totallist & $pagesize)
$pagecount = 1;
if ($totallist % $pagesize)
$pagecount =
(int)($totallist /$pagesize) + 1;
$pagecount = $totallist / $pagesize;
$pagecount = 0;
if($page==1)
$pageout = '首页|上一页|&a href = "ServiceRecord.php?page='.($page+1).'"&下一页|&/a&&a href="ServiceRecord.php?page='.$pagecount.'"&|尾页&/a&';
$pageout = '&a href = "ServiceRecord.php?page=1"&首页|&/a&&a href="ServiceRecord.php?page='.($page-1).'"&上一页|&/a&&a href="ServiceRecord.php?page='.($page+1).'"&下一页&/a&&a href="ServiceRecord.php?page='.$pagecount.'"&|尾页&/a&';
if($page==$pagecount)
$pageout = '&a href="Servicerecord.php?page=1"&首页&/a&上一页|&a href="ServiceRecord.php?page='.($page-1).'"&上一页|&/a&尾页';
$sql_select_result = "select UNIQUEID,BAR_NAME,BOSS_NAME,TEL,status,BAR_ADDRESS,Q_TYPE,ismember from service_record limit ".($page-1)*($pagesize).','.$pagesize;
$result = mysql_query($sql_select_result,$conn);
while($rows = mysql_fetch_array($result))
echo '&table id="tb2"&';
echo '&tr&';
echo '&td width="80px"&'.$rows['UNIQUEID'].'&/td&';
echo '&td width="70px"&'.$rows['BAR_NAME'].'&/td&';
echo '&td width="160px"&'.$rows['BAR_ADDRESS'].'&/td&';
echo '&td width="90px"&'.$rows['TEL'].'&/td&';
echo '&td width="70px"&'.$rows['status'].'&/td&';
echo '&td width="80px"&'.$rows['BOSS_NAME'].'&/td&';
echo '&td width="70px"&'.$rows['ismember'].'&/td&';
echo '&td width="35px"&'.'...'.'&/td&';
echo '&td&'.'...'.'&/td&';
echo '&/tr&';
echo '&/table&';
'&div id="splitpage"&';
echo $pageout.'&/br&';
echo '当前'.$page.'/'.$pagecount.'页,'.'每页'.$pagesize.'条,'.$totallist.'条记录';
mysql_close($conn);
case('add_servicerecord'):
Add_Record.php
&!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&
&html xmlns=" http://www.w3.org/1999/xhtml"&
&script src="default.js"&&/script&
&link rel="stylesheet" href="/css/style.css" type="text/css"&
switch($_GET['acticon'])
case('add_servicerecord'):
'&div id="sidebar_left_detail"&';
'&table cellpadding=5px &';
'&form id="serecord" action="ServiceRecord.php" method="POST" target="select_result"&';
'&input type="hidden" name="act" value="add_servicerecord"&';
'&td colspan="2"&&b&新增客服记录:&/b&&/td&';
'&td&注册号:&/td&';
'&td&&input type="text" name="Uniqueid" /&&/td&';
'&td&网吧名称&/td&';
'&td&&input type="text" name="Barname" /&&/td&';
'&td&负责人:&/td&';
'&td&&input type="text" name="Bossname" /&&/td&';
'&td&联系电话:&/td&';
'&td& &input type="text" name="Tel" /&&/td&';
'&td&网吧地址:&/td&';
'&td&&input type="text" name="Baraddress" /&&/td&';
'&td&问题类型:&/td&';
'&td&&select name="Qtype" &';
'&option value="server"&服务器&/option&';
'&option value="Client"&客户机&/option&';
'&option value="database"&数据库&/option&';
'&/select&&/td&';
'&td&问题详细描述:&/td&';
'&td&&textarea rows="3" cols="14" name="Description"&描述&/textarea&';
'&td&问题状态:&/td&';
'&td&&select&';
'&option value="Process"&处理中&/option&';
'&option value="Complete"&完成&/option&';
'&option value="Remove"&移交&/option&';
'&/select&
'&td colspan="2"&&input type="submit" onclick="return add_servicerecord()" value="提交客服记录" /&&/td&';
'&/form&';
'&/table&';
case('add_visitrecord'):
echo "添加回访哦!";
case('add_repairrecord'):
'&div id="sidebar_left_detail"&';
'&table cellpadding=5px &';
'&form id="serecord" action="ServiceRecord.php" method="GET" target="select_result"&';
'&input type="hidden" name="act1" value="add_repairrecord"&';
'&td colspan="2"&&b&新增返修记录:&/b&&/td&';
'&td&注册号:&/td&';
'&td&&input type="text" name="Uniqueid" /&&/td&';
'&td&网吧名称&/td&';
'&td&&input type="text" name="Barname" /&&/td&';
'&td&产品类型:&/td&';
'&td&&select name="Product_type"&';
'&option value="mainboard"&主板&/option&';
'&option value="graphics"&显卡&/option&';
'&option value="harddisk"&硬盘&/option&';
'&option value="other"&其他&/option&';
'&select&';
'&td&产品名称:&/td&';
'&td& &input type="text" name="Product_name" /&&/td&';
'&td&数量:&/td&';
'&td& &input type="text" name="Amount" /&&/td&';
'&td&接修日期:&/td&';
'&td&&input type="text" name="Incept_time" /&&/td&';
'&td&维修单位:&/td&';
'&td&&select name="Company" &';
'&option value="A"&网晶科技&/option&';
'&option value="B"&纵惯贸易&/option&';
'&option value="C"&新浩艺&/option&';
'&/select&&/td&';
'&td&送修日期:&/td&';
'&td&&input type="text" name="Sending_time" /&';
'&td&维修电话:&/td&';
'&td&&input type="text" name="Company_phone" /&&/td&';
'&td&状态:&/td&';
'&td&&select name="Status" &';
'&option value="A1"&已收件&/option&';
'&option value="A2"&返修中&/option&';
'&/select&&/td&';
'&td colspan="2"&&input type="submit" onclick="return add_servicerecord()" value="提交返修记录" /&&/td&';
'&/form&';
'&/table&';
把 $_GET 和 $_POST 统统改成 $_REQUEST 就万事无忧了
引用 11 楼 xuzuning 的回复:
把 $_GET 和 $_POST 统统改成 $_REQUEST 就万事无忧了
if (isset($_POST['page']))
//获取当前页
$page = $_POST['page'];
$page = 1;
中的$_POST 更改为$_REQUEST 还是获取不到页数
引用 7 楼 t5500 的回复:
我勒个去啊。。。这时候你要通过$_POST['act']获取数据!认真看看关于method属性的说明:.cn/tags/att_form_method.asp
兄弟帮忙看看吧
你的分页参数是通过GET方式传递的(也就是通过URL)。
if (isset($_GET['page'])) $page = $_GET['page'];
eles $page = 1;
有必要写这么多echo吗
引用 15 楼 liveasamonster 的回复:
有必要写这么多echo吗
请问有其他办法么。我刚入门
引用 14 楼 t5500 的回复:
你的分页参数是通过GET方式传递的(也就是通过URL)。PHP codeif (isset($_GET['page'])) $page = $_GET['page'];eles $page = 1;
$_GET 现在也获取不到呀,实际上如果使用$_GET能获取到、$_REQUEST应该也能获取到、不知道是哪里出问题了
$sql = 'select count(*) from service_R';这样也可以?
这是写的什么啊 没用MVC模式吗 或者 框架? 还有 写那么多echo?如果想这样输入页面的
用高级分离会好一点
引用 19 楼 ddaa1987 的回复:
这是写的什么啊 没用MVC模式吗 或者 框架? 还有 写那么多echo?如果想这样输入页面的 用高级分离会好一点
我刚开始学PHP,还不知道MVC怎么弄,呵呵,评论-1954&
trackbacks-0
All Input Is Evil!
-Writing secure code
在写前几篇文章的时候,有些朋友建议我的写一篇关于表单数据校验的文章。 正如文章的开头所引用的《Writing Secure Code》的名言:“所有的输入都是罪恶的”,所以我们应该对所有的外部输入进行校验。而表单是应用程序最简单的入口,对其传进来的数据,我们必须进行校验。
转换与校验(Conversion & Validation)
其实上篇文章,我本来是打算写表单数据校验的内容,但是经过再三思考后,还是决定先写Struts 2.0转换器的内容。原因是我认为转换是校验的基础,只有在数据被正确地转换成其对应的类型后,我们才可以对其取值范围进行校验。看个例子相信大家可以更清楚。现在我们就来改造一下《》的第一个例子。
首先,从Action开始,修改后的代码如下:
java.util.L
com.opensymphony.xwork2.ActionS
com.opensymphony.xwork2.util.LocalizedTextU
HelloWorld
ActionSupport
Locale loc
Locale.US;
String getMsg()
Locale getLoc()
setLoc(Locale
@Override
validate()
System.out.println(
Calling validate()
(loc.equals(Locale.US)
loc.equals(Locale.CHINA)))
addFieldError(
, getText(
validation.loc
validateExecute()
System.out.println(
Calling validateExecute() by reflection
@Override
String execute()
System.out.println(
Calling execute()
LocalizedTextUtil是Struts 2.0中国际化的工具类,&s:text&标志就是通过调用它实现国际化的
LocalizedTextUtil.findDefaultText(
HelloWorld
然后,修改Struts.xml中Action的定义指明输入地址:
="HelloWorld"
="tutorial.HelloWorld"
/HelloWorld.jsp
/HelloWorld.jsp
接着,在HelloWorld.jsp中加入错误提示:
@ page
contentType
text/ charset=UTF-8
@taglib prefix
/struts-tags
Hello World
s:fielderror
="HelloWorld"
s:textfield
s:property
再修改LocaleConverter.java文件,将内容改为:
java.util.L
java.util.M
java.util.regex.P
LocaleConverter
ognl.DefaultTypeConverter
@Override
Object convertValue(Map context, Object value, Class toType)
System.out.println(
Converting String to Locale
String locale
((String[]) value)[
<span style="color: #
Locale(locale.substring(
<span style="color: #
<span style="color: #
), locale.substring(
<span style="color: #
System.out.println(
Converting Locale to String
Locale locale
locale.toString();
之后,修改国际化资源文件,内容为:
HelloWorld
你好,世界!
invalid.fieldvalue.loc
Locale必须为\
validation.loc
区域必须为中国或美国
globalMessages_zh_CN.properties
HelloWorld
Hello World!
invalid.fieldvalue.loc
must like \
validation.loc
must be China or USA
globalMessages_en_US.properties
发布运行应用程序,在浏览器中键入,在Locale中输入zh_CN,按“Submit”提交,效果如上篇文章所示。而在服务器控制台有如下输出:
Converting String to Locale...
Calling validateExecute() by reflection...
Calling validate()...
Calling execute()...
Converting Locale to String...
上述的输出说明了Struts 2.0的数据校验工作方式,它需要经过下面几个步骤:
通过转换器将请求参数转换成相应的Bean属性;
判断转换过程是否出现异常。如果有,则将其保存到ActionContext中,conversionError拦截器再封装为fieldError;如果没有,进行下一步;
通过反射(Reflection)来调用validateXxx()方法(其中,Xxx表示Action的方法名);
调用validate()方法;
如果经过上述步骤没有出现fieldError,则调用Action方法;如果有,则会跳过Action方法,通过国际化将fieldError输出到页面。
不喜欢看文字的朋友,可以参考下面的图1。
图1 校验顺序图
看到这里可能大家会疑问:“这么多地方可以校验表单数据,到底我应该在那里做呢?”有选择是好事,但抉择的过程往往是痛苦的,往往让人不知所措。如果大家参照以下几点建议,相信会比较容易地做出正确的抉择。
如果需要转换的数据,通常做法在转换的时候做格式的校验,在Action中的校验方法中校验取值。假如用户填错了格式,我们可以通过在资源文件配置invalid.fieldvalue.xxx(xxx为属性名)来提示用户正确的格式,不同的阶段出错显示不同的信息。具体做法请参考上面的例子;
至于用validate()还是validateXxx(),我推荐使用validate()。原因是validateXxx()使用了反射,相对来说性能稍差,而validate()则是通过接口调用。当然如果你的表单数据取值是取决于特定Action方法,则应该使用validateXxx()。
在运行上面的例子时,在Locale中输入zh并提交时出现图2所示页面。
图2 错误格式
在Locale中输入de_DE时,出现如图3所示页面。
图3 取值错误
使用Struts 2.0的校验框架
上一节的内容都是关于如何编程实现校验,这部分工作大都是单调的重复。更多情况下,我们使用Struts 2.0的校验框架,通过配置实现一些常见的校验。
我学习编程有个习惯——喜欢先看输出结果,再看代码实现。这样学的好处是先看结果可以刺激学习的激情,也可以在看代码前自已思考一下如何实现,然后带着问题去看代码,那就清晰多了。因此下面我们先来做演示。
首先,在tutorial包下新建ValidationAction.java,代码如下:
com.opensymphony.xwork2.ActionS
ValidationAction
ActionSupport
String reqiuredS
String getReqiuredString()
setReqiuredString(String
reqiuredString)
.reqiuredString
&#64;Override
String execute()
然后,配置上述所建的Ation,代码片段如下:
="ValidationAction"
="tutorial.ValidationAction"
/Output.jsp
/Input.jsp
接着,创建Input.jsp和Output.jsp,内容分别如下:
&#64; page
contentType
text/ charset=UTF-8
&#64;taglib prefix
/struts-tags
Hello World
此标志的作用是引入Struts 2.0的常用的Javascript和CSS
="ValidationAction"
s:textfield
="reqiuredString"
="Required String"
&#64; page
contentType
text/ charset=UTF-8
&#64;taglib prefix
/struts-tags
Hello World
Required String:
s:property
="reqiuredString"
Output.jsp
再接下来,在tutorial包下创建ValidationAction的校验配置文件Xxx-validation.xml(Xxx为Action的类名),在本例中该文件名ValidationAction-validation.xml,内容如下:
xml version="1.0"
encoding="UTF-8"
validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.0//EN"
"/xwork/xwork-validator-1.0.2.dtd"
validators
="reqiuredString"
field-validator
="requiredstring"
This string is required
field-validator
validators
发布运行应用程序,在地址栏中键入,出现如图4所示页面。
图4 Input.jsp
直接点击“Submit”提交表单,出现图5所示的页面。
图5 错误提示
在Required String中随便填点东西,转到Output.jsp页面,如图6所示。
图6 Output.jsp
通过上面的例子,大家可以看到使用该校验框架十分简单方便。不过,上例还有两点不足:
还没有国际化错误消息;
没有实现客户端的校验。
当然,要完善以上不足,对于Struts 2.0来说,只是小菜一碟。
在Xxx-validation.xml文件中的&message&元素中加入key属性;
在Input.jsp中的&s:form&标志中加入validate="true"属性,就可以在用Javascript在客户端校验数据。
下面是具体的实现,首先在国际化资源文件中加入错误消息,然后按照上面说明实现。因为要使用Javascript在客户端显示出错信息,所以在加载Input.jsp页面时,Struts
2.0需要获得国际化的字符串,故我们需要使用Action来访问Input.jsp页面,具体实现请参考《》的最后部分。最后发布运行应用程序,直接在页面中点击“Submit”,表单没有被提交并出现错误提示,如图7所示:
图7 客户端校验
校验框架是通过validation拦截器实现,该拦载被注册到默认的拦截器链中。它在conversionError拦截器之后,在validateXxx()之前被调用。这里又出现了一个选择的问题:到底是应该在action中通过validateXxx()或validate()实现校验,还是使用validation拦截器?绝大多数情况,我建议大家使用校验框架,只有当框架满足不了您的要求才自已编写代码实现。
配置文件查找顺序
在上面的例子中,我们通过创建ValidationAction-validation.xml来配置表单校验。Struts 2.0的校验框架自动会读取该文件,但这样就会引出一个问题——如果我的Action继承其它的Action类,而这两个Action类都需要对表单数据进行校验,那我是否会在子类的配置文件(Xxx-validation.xml)中复制父类的配置吗?
答案是不,因为Struts 2.0的校验框架跟《》提到的“资源文件查找顺序”相似,有特定的配置文件查找顺序。不同的是校验框架按照自上而下的顺序在类层次查找配置文件。假设以下条件成立:
接口 Quadraped 扩展了 A
类 AnimalImpl 实现了 A
类 QuadrapedImpl 扩展了 AnimalImpl 实现了 Q
类 Dog 扩展了 QuadrapedI
如果Dog要被校验,框架方法会查找下面的配置文件(其中别名是Action在struts.xml中定义的别名):
Animal-validation.xml
Animal-别名-validation.xml
AnimalImpl-validation.xml
AnimalImpl-别名-validation.xml
Quadraped-validation.xml
Quadraped-别名-validation.xml
QuadrapedImpl-validation.xml
QuadrapedImpl-别名-validation.xml
Dog-validation.xml
Dog-别名-validation.xml
已有的校验器
Struts 2.0已经为您实现很多常用的校验了,以下在jar的default.xml中的注册的校验器。
validators
="required"
="com.opensymphony.xwork2.validator.validators.RequiredFieldValidator"
="requiredstring"
="com.opensymphony.xwork2.validator.validators.RequiredStringValidator"
="com.opensymphony.xwork2.validator.validators.IntRangeFieldValidator"
="com.opensymphony.xwork2.validator.validators.DoubleRangeFieldValidator"
="com.opensymphony.xwork2.validator.validators.DateRangeFieldValidator"
="expression"
="com.opensymphony.xwork2.validator.validators.ExpressionValidator"
="fieldexpression"
="com.opensymphony.xwork2.validator.validators.FieldExpressionValidator"
="com.opensymphony.xwork2.validator.validators.EmailValidator"
="com.opensymphony.xwork2.validator.validators.URLValidator"
="visitor"
="com.opensymphony.xwork2.validator.validators.VisitorFieldValidator"
="conversion"
="com.opensymphony.xwork2.validator.validators.ConversionErrorFieldValidator"
="stringlength"
="com.opensymphony.xwork2.validator.validators.StringLengthFieldValidator"
="com.opensymphony.xwork2.validator.validators.RegexFieldValidator"
validators
关于每个校验器的具体用法,请参考以下链接:
该链接中还有一些很有的信息,请大家仔细阅读。
使用校验框架既可以方便地实现表单数据校验,又能够将校验与Action分离,故我们应该尽可能使用校验框架。在使用校验框架时,请不要忘记通过在资源文件加入invalid.fieldvalue.xxx字符串,显示适合的类型转换出错信息;或者使用conversion校验器。
阅读(46256)
&re: 在Struts 2.0中实现表单数据校验(Validation)[未登录]
请问这个是什么问题?&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
&#64;huhuyeah
你是不是设了&s:form /&标志的theme属性?
正常情况下,生成的Javascript代码应该在&/form&之后,如:
&script type=&text/javascript&&
function validateForm_Xxx() {
}
&/script&&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
&#64;Max
是的,我把struts.ui.theme设置成simple了
这样校验就不起作用了。把simple去掉就起作用了
但是这样的话会自动生产一些表格。
能不能表格由我自己定制,而校验依然能使用的方法?
另外自动生产的JS也不是很好,总是提示objectError,然后显示错误标签
我是希望提示的时候就把错误的信息直接alert出来
这种能不能通过设置解决,谢谢&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
这里的文章很好耶!&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)[未登录]
你好,有个问题请教一下,已经发到你的邮箱里了,有时间时请帮忙解答一下,谢谢!&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
如何进行客户端校验?是自己写javascript代码,还是配置Xxx-Validation.xml文件来实现?我想用我自己的javascript代码,怎么用呢?&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
我的LoginAction里面有两个方法:init,login。如果我要让init方法执行时不验证,logic方法执行时做验证,该怎么配置,
我的LoginAction-validation.xml的内容是:
&validators&
&field name=&userId&&
&field-validator type=&requiredstring&&
&message key=&required&/&
&/field-validator&
&/field&
&/validators&
struts.xml的内容是:
&package name=&loginAction& extends=&struts-default&&
&action name=&login& class=&login.LoginAction&&
&result name=&sussessInit&&/WEB-INF/jsp/login.jsp&/result&
&result name=&sussessLogin&&/WEB-INF/jsp/main.jsp&/result&
&result name=&input&&/WEB-INF/jsp/login.jsp&/result&
&/action&
&/package&
请赐教&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
&#64;mm两种都可以。如果用自己的js,在form的onsumbit时候里面调用自己的js就可以了也可以在提交按钮里面onclick调用自己的校验js再forms[0].submit()来提交表单&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
&#64;mm
建议使用Struts 2的validation框架。&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
最简单的方法就是将你的LoginAction-validation.xml文件改名为“LoginAction-login-validation.xml”。这样validation的配置只对login起作用。&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
使用JS的话, 也有他的好处, 减少和Server间的通信,
Server端校验的话, 用Struts准备的也可以。。
不过,偶以前做的项目,都是自己写校验的类。。。
几乎没用过validation&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
文章中的验证是用xwork提供的方法,action方法要继承ActionSupport,如果不用xwork提供的验证,使用Struts 2的validation框架验证,验证走DWRValidator类提供的方法,应该怎么办?&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
LS看一下API吧。。
&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
在第一个例子有点小问题
validation.loc = 区域必须为中国或美国
这个我显示出错,没有显示出错信息,直接把validate.loc显示出来了!
后来我把
validate.loc = 区域必须为中国或美国
就可以显示了!
我直接在关注你的文章!
已经加了你的gtalk很少看到你!&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
&#64;jezz
对不起,最近比较忙一点。&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)[未登录]
huhuyeah,你那个关于theme的验证问题解决了吗?我和你碰到了一样的烦恼,郁闷啊,不知该怎么办!!!!&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)[未登录]
我的action配置为
&action name=&类名& class=&...&&
&interceptor-ref name=&validationWorkflowStack&/&
&result&list.jsp&/result&
&result name=&list& type=&redirect-action&&类名!list&/result&
&result name=&input&&edit.jsp&/result&
&/action&
在edit.jsp页面中,通过&类名!save.action&来进行保存,另外配置了&类名-save-validation.xml&文件。
我的问题的,当把验证配置文件改名为&类名-validation.xml&时,会对用&类名&加&!&方式访问的所有方法进行验证,可以只想对save方法进行验证,但将配置文件更名为&类名-save-validation.xml&后,验证就不起作用了.............&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)[未登录]
&#64;Oliver
可“是”只想对save方法进行验证,打错一个字:(&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
为什么我一进页面错误提示就出现呢??
没提交之前就出现。。。。
为什么,帮忙分析一下原因呗!!&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
楼主,我的Action 定义如下 &action name=&save&
class=&ManagerConfigAction&
method=&save&&
&result name=&input&
type=&dispatcher&&/Conf/mozartConf.jsp&/result&
&result type=&redirect&&/mozartConf/show.action&/result&
&/action&然后定义了validator配置文件运行后,当在input框输入错误值时,错误提示信息可以显示出来,但服务器端还是对数据进行了保存啊!!&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
请问:&在Xxx-validation.xml文件中的&message&元素中加入key属性; &
这个怎么操作啊?
谢谢了!&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
&#64;jpma
自己找到答案了,我是这样写的,功能实现了,不知有没有其它的方式。
修改Xxx-validation.xml文件中的&validators&部分
&validators&
&field name=&reqiuredString&&
&field-validator type=&requiredstring&&
&message key=&validation.req& /&
&/field-validator&
&/field&
&/validators&
其中key的值对应globalMessages_en_US.properties与globalMessages_zh_CN.properties中“validation.req”
-------------------------------------------------
HelloWorld=HelloWorld!
invalid.fieldvalue.loc = Locale must like \ & xx_XX\ &
validation.loc = Locale must be China or USA
validation.require=${getText(fileName)} is required
validation.rqu=This string is required
-------------------------------------------------&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
最后一行写错了,是
validation.req=This string is required
globalMessages_zh_CN.properties内容
-------------------------------------------------
HelloWorld=你好,世界!哈哈
invalid.fieldvalue.loc = Locale必须为\ & xx_XX\ & 的格式
validation.loc = 区域必须为中国或美国
validation.require=${getText(fileName)} is required
validation.req=字符串不可为空
-------------------------------------------------&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
那不用写javascript验证啊?&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
在&/form&这后已产生了js,为什么验证不起作用呢,并没有提示信息
&script type=&text/javascript&&
function validateForm_ValidationAction() {
form = document.getElementById(&ValidationAction&);
clearErrorMessages(form);
clearErrorLabels(form);
var errors =
}
&/script&&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
&#64;任遨游
--------------------------------------------
在Input.jsp中的&s:form&标志中加入validate=&true&属性,就可以在用Javascript在客户端校验数据。&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
以下是我input.jsp代码,可是还是不起作用
&%&#64; page contentType=&text/charset=UTF-8& %&
&%&#64; taglib prefix=&s& uri=&/struts-tags& %&
&title& Hello World &/title&
&!-- 姝ゆ爣蹇楃殑浣滅敤鏄?紩鍏?truts 2.0鐨勫父鐢ㄧ殑Javascript鍜孋SS --&
&s:form action=&ValidationAction& validate=&true&&
&s:textfield name=&reqiuredString& label=&Required String& /&
&s:submit/&
&/html& &&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
Struts2.x是否可以像Struts1.x那样使用统一的表单校验文件validation.xml&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
&#64;妖狐
我认为不可以。&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
表单校验很重要,max的所有例子我都运行了下,只有这个校验,还有那个showproduct.jsp这两个例子
怎么也调不过去了。郁闷ing&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
没有回复了?我用的struts2.0.8,怎么校验不起作用呢&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
&#64;任遨游
三言两语,我也帮不了你。
不如你留下Email,我有空的时候可以将例子的源码发你。&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
&#64;Max
supershan&#,非常感谢&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
今天用一下validator框架,也遇到了这个问题真是郁闷极了.
哪位知道解决办法啊?&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
我的验证都通过了,但是验证错误信息提示老显示在上方,有没有什么办法可以让它显示在验证行之后呢?还有有哪位老大把他那官方Using FieldValidators示例调式通过了的啊,为什么我老提示No result defined for action&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
这个例子通过了,其实max的例子都是可以的,有时运行不通过,很有可能是配置时,只差了一点点。&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
能不能修改错误信息显示的位置啊?显示在上方不太好看?&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
如果在表单中填入数字,而且是必填的,如何写配置文件啊?&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
讲解得相当透彻。谢谢&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
如果使用框架验证,每一个action需要一个相应的配置文件,那岂不是增加了工作量?&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
文章写到后面,怎么草草收兵了,颇有不解之处&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
&#64;甲生
1、“增加了工作量”这个问题可以说是见仁见智;
2、有些东西是“师傅领入门,修行靠自己”;我本人能力和时间有限,所以不可以面面俱到。&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
是的,虽然有些不懂,但也学了不少,非常感谢!&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
为什么使用自定义校验器不行,严重: Servlet.service() for servlet default threw exceptionjava.lang.ExceptionInInitializerError at com.opensymphony.xwork2.validator.ValidatorFileParser.
addValidatorConfigs(ValidatorFileParser.java:192)&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
把validate=&true&这个加上之后会出现
FreeMarker template error!
Method public java.lang.String com.opensymphony.xwork2.validator.validators.ValidatorSupport.getMessage(java.lang.Object) threw an exception when invoked on com.opensymphony.xwork2.validator.validators.RequiredStringValidator&#64;10699ea
The problematic instruction:
----------
==& ${validator.getMessage(action)?js_string} [on line 28, column 26 in template/xhtml/form-close-validate.ftl]
in include &/${parameters.templateDir}/xhtml/form-close-validate.ftl& [on line 3, column 1 in template/xhtml/form-close.ftl]
----------
Java backtrace for programmers:
----------
freemarker.template.TemplateModelException: Method public java.lang.String com.opensymphony.xwork2.validator.validators.ValidatorSupport.getMessage(java.lang.Object) threw an exception when invoked on com.opensymphony.xwork2.validator.validators.RequiredStringValidator&#64;10699ea&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
在线等待解决&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
&#64;Max
你写的文章太好啦,讲解的也很仔细,可以出书了,呵呵~:)
能帮我解决下 提交前就进行验证的问题,(我不想在未提交前就输出警告信息,如:字符不为空。)
如果好的例子的话可以发给我吗?
邮箱:pxcong007&#
&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
max哥..小弟又来拜读你的大作啦..
请问一下。
在alidation框架下面。
如果想用红色显示该怎么做啊。.
&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
如果按照你的第一种方法来弄。.则会显示两个.
一个是红色的.一个是黑色的。请问应该怎么解决也&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
&#64;louleigh
不是很明白你的问题,能否详细一点&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
我的问题就是你验证后要提示错误信息嘛。
怎么把那个错误信息变成红色的。。
我看了一下我的表达好象是有点问题。。
我现在的问题是他要提示错误。
但是错误显示是黑色的。。
我可以在他前面加上
&div style=&color:red&&&s:fielderror&&/div&
但是这样的话。他就会显示两次错误信息。
我想显示一次。并且让他成为红色。
请问该怎么做。
麻烦你啦。。max哥&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
我配置出来的后。。
validation他显示的颜色是黑色。。。
我的意思大概就是这个&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
我的程序怎么出不来呢?加上验证的就过不去。请教高手除了写actionname-validation.xml 以外还需要配置别的地方吗?谢谢
&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
按照上面的配置之后,运行出以下的错误
Document is invalid: no grammar found
请问该如何解决&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
&#64;gdm
actionname-validation.xml除了这个玩意儿没有地方需要写了
请你把max的例子。。仔细看下哪里整错了没有。
max的例子是绝对正确的
仔细检查&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
max我知道问题出在哪里了
问题出在
我以前没有写&s:head/&
这个东西。。
现在用了这个就可以变色了
请问s:head是实现的什么东西啊
我可以重写他的内容吗。
他改变了我页面的其他显示啊。。
我不想用他的字体。。如果知道请回答&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
首先感谢louleigh的回复,我阅读好几遍了
以下是我的RegisterAction-validation.xml中写到的
&?xml version=&1.0& encoding=&UTF-8&?&
&validators&
&field name =&user.username&&
&field-validator type =&requiredstring&&
&message& This string is required &/message&
&/field-validator&
&field name=&user.password&&
&field-validator type=&requiredstring&&
&message&You must enter a value for password.&/message&
&/field-validator&
&field-validator type=&fieldexpression&&
&param name=&expression&&
user.password == user.verifyPassword
&message&Passwords don't match.&/message&
&/field-validator&
&/field&
&field name=&user.birthday&&
&field-validator type=&date&&
&param name=&min&&12/22/1980&/param&
&param name=&max&&9/1/2007&/param&
&message&The date must be between 12-22-2002 and 12-25-2002.&/message&
&/field-validator&
&field name=&user.email&&
&field-validator type=&email&&
&message&You must enter a valid email.&/message&
&/field-validator&
&/field&
&field name=&user.age&&
&field-validator type=&int&&
&param name=&min&&6&/param&
&param name=&max&&100&/param&
Age must be between ${min} and ${max}, current value is
${user.age}.
&/message&
&/field-validator&
&/field&
&/validators&
下面是struts.xml
&?xml version=&1.0& encoding=&UTF-8& ?&
&!DOCTYPE struts PUBLIC
&-//Apache Software Foundation//DTD Struts Configuration 2.0//EN&
&
&struts&
&package name=&default& extends=&struts-default&&
&action name=&reg&
class=&com.gdm.actions.RegisterAction.RegisterAction&&
&result name=&success& type=&dispatcher&&
&param name=&location&&/result.jsp&/param&
&result name=&input& type=&dispatcher&&
&param name=&location&&/register.jsp&/param&
&interceptor-ref name=&validationWorkflowStack&/&
&/package&
&/struts&
请教高手帮忙分析一下!在线等&&&&&&
&validate失败以后,画面中的list重新复值得问题
我用validate-别名-validate.xml方式验证画面的数据项目,如果失败的情况下,直接返回到提交画面,但是这个画面的list项目还没有设定(因为没有进入action)我怎么做才能重新这个list得值呢&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
&#64;zouzhihua
跟你的问题一模一样。没人解答 算了...等我解决告诉你&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
这个问题的直接原因是validationsupport.getMessage的时候需要根据你传进来的action对象o,得到o.class的log,产生了nullpoiter exception,根本原因是没有通过action访问jsp文件,所以传进来的action是null。
我的mail:shiboqing&#&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
&#64;Max
請問:&1.在Xxx-validation.xml文件中的&message&元素中加入key属性;
2.在Input.jsp中的&s:form&标志中加入validate=&true&属性,就可以在用Javascript在客户端校验数据。 &這兩條是不是不能同時實現啊?
我試驗了一下,如果滿足了第一條的情況下,再加上validate=&true&,就會出現
和zouzhihua
一樣的錯誤提示.但是只滿足第貳條時,就可以在客戶端進行驗證.還請Max先生解釋一下!Tks!&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
我在做验证的一个例子:
在注册时,通常要输入密码和验证密码两项内容,请问如何才能用validation.xml来进行验证.
我看了几个例子,但是它们的输入数据都是只能一个,如何往validation.xml中传入两个数据呢?
请你帮我解决一下,谢谢了!
&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
页面第一次显示的时候,不想引发验证。该怎么设置呢?&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)[未登录]
Struts2,好东西!&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
各位,为什么我的校验框架,无论是在输入出错或者没有出错的时候都会抛出错误呢?
补充:我是按照max的流程来做的。&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
为什么我完全按照例子来的
可是不输入任何内容的时候也会正常显示 只是为空罢了
大家认为错误最可能出在哪了
&re: 在Struts 2.0中实现表单数据校验(Validation)
很不错,收藏.&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
我测试client端的验证,但是我发现其实根本是 虚的,我可以断定表单依然提交到了后台然后才进行验证的,我不知道这里是否有人真正实现过。我发现的问题是,虽然验证js代码都生成了,但是不能执行,原因是找不到clearErrorMessages(form); 方法,而且我观察可能是要加载的&script type=&text/javascript& src=&/testss1/struts/xhtml/validation.js&&&/script& 找不到的缘故,因为这个目录根本就不存在,testss1是本人测试的应用。望这里有高手回答我疑惑,万分感激!!能给我邮件最好: yuchw(.cn&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)[未登录]
谢谢您提供给我们这么好一篇文章,对我最近的工作带来了很大帮助。
有个小问题:在深入理解一段时间后,发现struts2的校验流程比您描述的还要复杂一点(您文章文章中的流程图),应该是js+拦截器1+拦截器2三个阶段。&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)[未登录]
&#64;zouzhihua
我也遇到了,你解决了吗?&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
请问如何才能修改struts 2.0中错误显示的位置呢。就是用验证框架后返回到页面上显示的报错信息,
默认是显示控件的上方(红色),但是我现在想让它显示在控件的右边。
如何处理.......&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
这个问题有点急,项目里面要用。
哎找了很多资料都没有找到。
请大家帮我一下!
谢谢了&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
需要在指定位置输出错误信息时,form主题theme不能设置成默认,应是simple,默认的主题会在每个控件上面输出错误信息。然后在你需要输出错误信息的地方用
&s:fielderror&
&s:param value=&%{'fieldname'}&/&&/s:fielderror&&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
我是刚刚接触struts2.0
我写的验证但是没有反映,也没有错误&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
&#64;日本の項目に対する新人
这个方法可以,但是页面的格式和布局不是很好看,有没有方法让框架产生的HTML页面显示错误信息时不产生&ui&&li&标签呢?&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
&s:fielderror&
&s:param value=&%{'fieldname'}&/&&/s:fielderror&
上面的方法很好。
但是页面的格式和布局不是很好看,有没有方法让框架产生的HTML页面显示错误信息时不产生&ui&&li&标签呢? &&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)[未登录]
&#64;mz原因是在校验配置文件***-validation.xml中使用了package.properties中消息键,该消息资源中的消息在不调用Action是不能使用的,只有调用Action,该页面对应的校验配置文件***-validation.xml才能使用了package.properties中消息键。所以直接调用ordernew.jsp是不行的&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)[未登录]
&#64;test原因是在校验配置文件***-validation.xml中使用了package.properties中消息键,该消息资源中的消息在不调用Action是不能使用的,只有调用Action,该页面对应的校验配置文件***-validation.xml才能使用了package.properties中消息键。所以直接调用ordernew.jsp是不行的&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)[未登录]
&#64;zouzhihua原因是在校验配置文件***-validation.xml中使用了package.properties中消息键,该消息资源中的消息在不调用Action是不能使用的,只有调用Action,该页面对应的校验配置文件***-validation.xml才能使用了package.properties中消息键。所以直接调用ordernew.jsp是不行的&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
感谢楼主百忙中给我们整理资料&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
&#64;Nick
是的,可以改为
& action name =&HelloWorld_*& class =&tutorial.HelloWorld& method=&{1}&&
& result & /HelloWorld.jsp &/ result &
& result name =&input& & /HelloWorld.jsp &/ result &
&/ action &
然后访问
&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
请问在ActionName-validation.xml中如何对double类型的变量进行验证,我是这样写的
&field name=&price&&
&field-validator type=&conversion& short-circuit=&true&&
&param name=&repopulateField&&true&/param&
&message&价格必须是数字类型&/message&
&/field-validator&
&field-validator type=&double& &
&param name=&min&&1&/param&
&message&价格必须大于1元&/message&
&/field-validator&
&/field&
它默认在文本框中显示0.0 ,价格的范围还是验证不了,请问这到底是什么原因,我该如何解决?&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
楼主您好,我是struts2新手.在调试你上面给的校验框架的那个例子的时候,出现问题了.代码都是照搬过来的,但是在我这执行就是不正确,不知道为什么?头大!
错误代码如下:
15:08:34 org.ponents.Form evaluateExtraParamsServletRequest
警告: No configuration found for the specified action: 'ValidationAction.action' in namespace: '/'. Form action defaulting to 'action' attribute's literal value.
这个警告会出来两遍~~然后程序是没有执行校验,随便输入什么值都没有执行action...
当我把&s:form&换成普通的&form action=...&时,上面的错误警告就没了,但是还是没有执行到action.只有把ValidationAction-validation.xml挪到别的地方,action才会被执行...
另外我把&s:form action=&ValidationAction.action&&写成这样才能找到action,看到一些文章说是不需要写上.action的,我不知道哪里设置~~
问题比较多,希望能帮帮忙,谢谢了.如果可能的话,能不能把上面的例子项目给发到我邮箱? oskin2002&# 再次感谢.
&re: 在Struts 2.0中实现表单数据校验(Validation)
补充一下,上面那个警告是在刷新Input.jsp的时候就出现的&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)[未登录]
submit后提示Invalid field value for field &loc&.这是为什么啊?&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
关于struts2的验证。我在做的demo的时候碰到这么个问题,struts.xml文件的input配置jsp页面没有问题,但是如果配置input跳到action的话,怎么也不能跳过去。请问LZ该怎么解决这个问题啊!&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
&#64;kevin
用局部资源 全局的无法找到&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)[未登录]
&#64;Max
文中“...Struts 2.0的校验框架自动会读取该文件,但这样就会引出一个问题——如果我的Action继承其它的Action类,而这两个Action类都需要对表单数据进行校验,那我是否会在子类的配置文件(Xxx-validation.xml)中复制父类的配置吗?答案是不,因为...”
怎么我看了后面的解释,我觉得你应该说“答案是肯定的”,怎么是“不”呢?
因为照你的意思是,先找父类配置,然后再找子类(自己)配置,不正是你所说的复制父类的配置吗???&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
&#64;日本の項目に対する新人
这个方法好像不行啊,我试了下,可是错误提示还是在顶上,倒是设置了theme=“simple”后我的标签什么的都没了&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
看到您的博客收获很多,文章写的非常详细,很容易理解,祝博客越来越好&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
我运行你的第二个例子时,在里面输入了字符串,结果报错是:
root cause
org.apache.jasper.JasperException: org.apache.jasper.JasperException: File &/struts-tags & not found
请问这是怎么回事,如果不输入可以正常运行&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)[未登录]
呵呵不错!&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
sfsafasf&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
&#64;socretes
遇到同样的问题,不知道为什么。&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
麻烦也发我一份 谢谢
public_private&#&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)[未登录]
&#64;kane82
这个问题,和你写了一个死循环没有区别。&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
你好,我想问个事,就是我在试用框架验证时 我的struts.xml中action节点是这样的&action name=&*_metaAction& class=&com.ewaytec.merchant.product.action.AddAndEditMetaAction& method=&{1}& & 那我那个验证配置文件的名字怎么命名?&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)[未登录]
要不您发个源码给我吧,ianafollow&#,谢谢!&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)
怎么去掉圆点儿啊?&&&&&&
&re: 在Struts 2.0中实现表单数据校验(Validation)[未登录]
怎么去掉圆点儿啊!&&&&&&
2006年11月
29303123456891011121315161718192021222324252627282930123456789
留言簿(252)
一个如我一般对IT执着的好朋友
阅读排行榜
评论排行榜

我要回帖

更多关于 form表单提交action 的文章

 

随机推荐