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 jquery
    ajax验证和
    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>