簡體   English   中英

Struts 2操作未被調用

[英]Struts 2 Action not getting invoked

幾天來,我試圖查看為什么我的動作沒有以這種特定形式被調用。

我的表單如下所示,並且我有與Struts框架一起使用的Struts URL標記:

 <s:form action="RegisterUser" cssClass="form-horizontal" id="id-register-form" method="post">
   Couple of Struts 2 UI tags
 </s:form>

我的Register用戶操作非常簡單,只需執行一個方法即可,它返回字符串"success"

public class RegisterUser extends ActionSupport {

    public RegisterUser() {
    }

    @Override
    public String execute() throws Exception {
        System.out.println("Inside execute method test 1!");
          return "success";
    }

}

我上面的struts.xml如下所示:

 <action name="RegisterUser" class="Mypackage.RegisterUser" method="execute"> 
            <result name="success">/WEB-INF/views/usermanagement/register-success.jsp</result>
            <result name="error">/WEB-INF/views/usermanagement/register-error.jsp</result>
        </action>  

但是,只要單擊表單的提交按鈕,就不會觸發表單提交。 我使用jquery validate庫通過jquery進行客戶端驗證,然后使用struts驗證框架進行服務器端驗證,但是我認為問題與驗證無關,而更多在動作映射方面或與提交按鈕有關。下面是我的提交按鈕,

<s:submit type="button" cssClass="btn btn-primary" value="Create Account" cssStyle="float:left;">Create Account</s:submit>

感謝有人可以看看並給我一些見解。 我在Glassfish v4上並使用Netbeans IDE,而我的Struts 2在Win 8.1上為2.3.15.3

這是我的jQuery客戶端驗證的JS代碼:

$(document).ready(function() {


    // validate the comment form when it is submitted
    $("#id-register-form").validate({
        errorPlacement: function(error, element) {
            if (element.attr("name") == "Email") {
                error.appendTo('#error-Email');
            }
            else if (element.attr("name") == "Password") {
                error.appendTo('#error-Password');
            }
            else if (element.attr("name") == "ConfirmPassword") {
                error.appendTo('#error-ConfirmPassword');
            }
            else if (element.attr("name") == "AgreetoPolicy") {
                error.appendTo('#error-Agree');
            }

        },
        rules: {
            Email: {
                required: true,
                email: true
            },
            Password: {
                required: true,
                minlength: 5
            },
            ConfirmPassword: {
                required: true,
                minlength: 8,
                equalTo: "#Password"
            },
            AgreetoPolicy: "required"
        },
        messages: {
            Email: "<small>Please enter a valid email address</small>",
            Password: {
                required: "<small>Please provide a password</small>",
                minlength: "<small>Your password must be at least 8 characters long</small>"
            },
            ConfirmPassword: {
                required: "<small>Please provide a password</small>",
                minlength: "<small>Your password must be at least 5 characters long</small>",
                equalTo: "<small>Please enter the same password as above</small>"
            },
            AgreetoPolicy: "<strong><small>Please accept our policy</small></strong>"
        }
    });
});

嘗試在郵件中更改此代碼

Email:  {
          required: "<small>Please enter a valid email address</small>",
          email: "Email addresses are of the form user@host."
        }

是的問題現在已經解決了,這是我不完整的Jquery驗證代碼導致無法提交表單的原因......謝謝Roman和Andrea的幫助和幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM