这两天很来气,原因就是struts2的ajax表单验证问题,我网上找了n久,我真是佩服了,同样的文章大家转来转去,或许就把书上的文章抄上去 ,切,是不是出现了个ajax的效果就急忙的喊着"开始神奇的ajax之旅了"?去你的,你知道不,无论是 < <struts2权威指南>>还是struts2官方给的 show-case例子,都是错误的!!
下面我就描叙下这个困扰了我两天的问题:
由于要实现ajax的验证,我在权威指南中找到了相关的例子,可是当我实际用上之后,问题出现了
这是书里的源码:
不知道你实际运行过没有,这个例子是错误的!表单里的data数据根本就无法传递到action中去,
[color=red]
显示的效果是: 服务器提示:null [/color]
[color=red]如果你还不信,你去看看show-case里的ajax表单验证的相同例子,一样返回是null!!![/color]
然而,我对 < <指南>>里的例子稍作修改:
[color=red]并且,并且一定要在firefox里面,就能正确的显示出传递的data了!但在IE中还是为NULL [/color]
现在回到我的页面上,同样遇到相同的问题,如果我的form是嵌套在一个div里面,而且我是针对这个div进行局部刷新,
在firefox中一切OK.然而在IE中却始终是提交为空的,并且后台输出
[color=red]2008-4-23 10:42:03 org.apache.tomcat.util.http.Parameters processParameters
警告: Parameters: Invalid chunk ignored. [/color]
呵呵,看看JE有没神人来解决这个问题~~
下面我就描叙下这个困扰了我两天的问题:
由于要实现ajax的验证,我在权威指南中找到了相关的例子,可是当我实际用上之后,问题出现了
这是书里的源码:
使用表单请求的返回值来填充本Form<br/>
<s:form id='theForm2'
cssStyle="border: 1px solid black;"
action='AjaxTest'
method='post'
theme="ajax">
<s:textfield name='data' label="请输入您喜欢的图书"/>
<s:submit value="修改Form本身" targets="theForm2"/>
</s:form>
不知道你实际运行过没有,这个例子是错误的!表单里的data数据根本就无法传递到action中去,
[color=red]
显示的效果是: 服务器提示:null [/color]
[color=red]如果你还不信,你去看看show-case里的ajax表单验证的相同例子,一样返回是null!!![/color]
然而,我对 < <指南>>里的例子稍作修改:
使用表单请求的返回值来填充本Form<br/>
<s:div id="mydiv">
<s:form id='theForm2'
cssStyle="border: 1px solid black;"
action='AjaxTest'
method='post'
theme="ajax">
<s:textfield name='data' label="请输入您喜欢的图书"/>
<s:submit value="修改Form本身" targets="mydiv"/>
</s:form>
</s:div>
[color=red]并且,并且一定要在firefox里面,就能正确的显示出传递的data了!但在IE中还是为NULL [/color]
现在回到我的页面上,同样遇到相同的问题,如果我的form是嵌套在一个div里面,而且我是针对这个div进行局部刷新,
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<s:head theme="ajax" />
</head>
<body>
<s:div id="mydiv" theme="ajax">
<s:form action="onload" method="post" validate="true" theme="ajax" id="myform">
<s:textfield name="userid" label="用户名"></s:textfield>
<s:password name="userpwd" label="密码"></s:password>
<s:submit value="登陆" notifyTopics="/onload" targets="mydiv" theme="ajax"></s:submit>
</s:form>
</s:div>
</body>
</html>
在firefox中一切OK.然而在IE中却始终是提交为空的,并且后台输出
[color=red]2008-4-23 10:42:03 org.apache.tomcat.util.http.Parameters processParameters
警告: Parameters: Invalid chunk ignored. [/color]
呵呵,看看JE有没神人来解决这个问题~~