struts 2 jquery插件设置表单目标

时间:2013-12-15 13:08:44

标签: jquery struts2 struts2-jquery

如何将<sj:submit>的目标设置为顶部。

作为示例登录页面应该在ajax基础验证结束后打开:

<s:form id="loginForm" action="login-process-result" namespace="/security" >

    <sj:submit button="true" 
        validateFunction="formValidator" validate="true" key="form.btn.login    />
</s:form>

我尝试了sj:submit targetss:form target,没有一个工作过!

我不想使用s:submit,因为表单验证必须通过Ajax完成。

2 个答案:

答案 0 :(得分:2)

将其放在表单上,​​而不是提交标记:

<s:form action = "login-process-result" 
     namespace = "/security" 
            id = "loginForm" 
        target = "_top" >

但你确定这是你想要的吗? Take a look at how target="_top" works

根据你的描述,我不这么认为。

答案 1 :(得分:0)

要遵循struts2 jquery ajax validationtarget的概念,我使用了以下解决方案:

login-form.jsp(未设置目标):

<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;
  }

最后这个技巧的结果形式是一个普通的jsp,通过javascript更改窗口位置

页面显示成功消息,并在更改网址之前稍微延迟,这是可选的,可以删除。

<%@ 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>