Struts2jQuery插件设置表单目标
如何将Struts2jQuery插件设置表单目标,jquery,struts2,struts2-jquery,Jquery,Struts2,Struts2 Jquery,如何将的目标设置为顶部 作为一个示例,在ajax基本验证结束后,登录页面应打开new(新建): <s:form id="loginForm" action="login-process-result" namespace="/security" > <sj:submit button="true" validateFunction="formValidator" validate="true" key="form.btn.login />
的目标设置为顶部
作为一个示例,在ajax基本验证结束后,登录页面应打开new(新建):
<s:form id="loginForm" action="login-process-result" namespace="/security" >
<sj:submit button="true"
validateFunction="formValidator" validate="true" key="form.btn.login />
</s:form>
将其放在表单上,而不是提交标签上:
<s:form action = "login-process-result"
namespace = "/security"
id = "loginForm"
target = "_top" >
但你确定这就是你想要的吗
根据你的描述,我不这么认为。我不知道你为什么要求这样的行为
我所能想象的,就是使用struts2 jquery插件通过Ajax更新页面的特定部分,以提交表单&获取响应并将其推送到DOM中
以下是您可以做的:
通过ajax提交表单
在服务器端执行验证
将返回的响应填入页面的所需区域
为了使用Struts2 Jquery插件实现这一点,您可以使用sj:submit的onCompleteTopics
和onErrorTopics
JSP
上面是未经测试的代码,但我确信它解释了如何处理手头的问题。为了遵循struts2 jqueryajax验证和target
概念,我使用了以下解决方案:
login-form.jsp(未设置目标):
最后,实现这个技巧的结果表单是一个普通的jsp,它通过javascript更改窗口位置
该页面显示一条成功消息,并在更改url之前稍作延迟,这是可选的,可以删除
<%@ page contentType="text/html; charset=utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
You have logged in successfully ....
<br/>
<img src="images/loggin-in-progress.gif" />
<s:url var="url" action="private-page" namespace="/"/>
<script type="text/javascript">
function reload() {
window.location.href = "${url}";
}
$(document).ready(function() {
setTimeout('reload()', 800);
});
</script>
您已成功登录。。。。
函数重载(){
window.location.href=“${url}”;
}
$(文档).ready(函数(){
setTimeout('reload()',800);
});
你所说的top
是什么意思?我指的是链接表单的目标,正如你现在所说的,目标可以是“balnk”、“self”、“parent”、“top”。但我不知道我怎么能把它放在这里。我找到了一些工作,但希望能找到更好的答案!如果我使用s:form,我将丢失Struts2jQuery插件ajax验证!您已经在代码中使用了s:form?顺便问一下,还有哪些选择?(除了HTML表单,这也行吗)?我犯了一个错误!我的意思是“如果我将s:form与target=“\u-top”一起使用,我将丢失struts 2 jquery插件ajax验证!”正如您所提到的,target=“\u-top”正在工作,但是当您将其与jquery ajax验证一起使用时,无论表单是否有有效输入,表单始终以\u-top为目标。我正在寻找框架是否有内置支持:通过ajax不断验证表单,并在操作成功完成时将表单发送到_top。我得到了您提到的想法。顺便说一句,我不知道为什么这些主题从未发表过!
$.subscribe('success',function(event){
var responseText=event.originalEvent.responseText;
});
<s:form id="loginForm" action="login-process-result" namespace="/security" >
<sj:submit button="true"
validateFunction="formValidator" validate="true" key="form.btn.login />
</s:form>
@Action(value = "login-process-result")
@Validations(requiredStrings={
@RequiredStringValidator(fieldName="userID",key="validate.required"),
@RequiredStringValidator(fieldName="password",key="validate.required")} )
public String result() throws ClientException{
//Authentication login goes here
return SUCCESS;
}
<%@ page contentType="text/html; charset=utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
You have logged in successfully ....
<br/>
<img src="images/loggin-in-progress.gif" />
<s:url var="url" action="private-page" namespace="/"/>
<script type="text/javascript">
function reload() {
window.location.href = "${url}";
}
$(document).ready(function() {
setTimeout('reload()', 800);
});
</script>