1

죄송합니다. 영어가 부족합니다. 나는 문자 그대로 나를 혼란스럽게하는 많은 일들을 내 마음 속에두고있다. 처음에 나를 혼란스럽게하는 @ModelAttribute로 양식 제출 값을 처리하고 싶습니다. @ModelAttribute를 사용하지 않고 나는 훌륭하고 모든 것이 완벽하게 작동하도록하십시오.@ModelAttribute spring mvc 포틀릿 및 ajax 양식

내 요구 사항은 내가

<portlet:resourceURL var="userURL" id="addUser" escapeXml="false" /> 

<form id="<portlet:namespace />User> 
<table> 
<tr><td>First Name: </td> 
    <td><input type="text" name="fname"></td></tr> 
<tr><td>Last Name: </td> 
    <td><input type="text" name="lname"></td></tr> 
<tr><td>Address 1: </td> 
    <td><input type="text" name="address_1"></td></tr> 
<tr><td>Address 2: </td> 
    <td><input type="text" name="address_2"></td></tr> 
<tr><td>Zipcode </td> 
    <td><input type="text" name="zipcode"></td></tr> 
<tr><td>&nbsp; </td> 
    <td><button id="submit">Submit</td></tr> 

</table> 
</form> 

이 아약스 양식을 3.0 주석 포틀릿과 스프링 MVC에서

양식을 제출 처리 할 수 ​​있습니다 나는 아약스 호출

$('#submit').on('click',function() { 
    var fname = $('#fname').val(); 
    var lname = $('#lname').val(); 
    var address_1 = $('#address_1').val(); 
    var address_2 = $('#address_2').val(); 
    var zipcode = $('#zipcode').val(); 

    $.ajax({ 
     type: "POST" 
     url: "<c:out value="${userURL}" />" 
     data: {fname: fname, lname: lname, address_1: address_1, address_2: address_2,   zipcode: zipcode } 
     success: function(data) { 
        if(data == "success") { 
         $('#showError').hide(); 
        } else { 
         $('#showError').show(); 
        } 
     } 
    }) 

}); 
로 양식을 제출하려면 다음 jQuery를 사용

다음 컨트롤러를 사용하여 ajax 호출을 처리합니다.

@Controller 
@RequestMapping("VIEW") 
public class UserController { 

     @ResourceMapping("addUser") 
     public String addUser(ResourceRequest request, ResourceResponse response) { 
      String fName = request.getParameter("fname"); 
      String lName = request.getParameter("lname"); 
      String address_1 = request.getParameter("address_1"); 
      String address_2 = request.getParameter("address_2"); 
      String zipcode = request.getParameter("zipcode"); 

      // I do the processing of the form and add the user attributes to the database. 
     } 

} 

나는 User 클래스를 만들었고 @ModelAttribute를 사용하여 값을 설정하거나 가져 오려고합니다. 나는 그것을 사용하여 알아 내려고 많은 링크를 통해 갔다. 예제 중 하나는 taglib 형식을 사용합니다. 아약스 호출로 양식을 제출 jQuery 가지고 있고 내 패턴을이 패턴을 바꿀 경우 양식을 변경하면 잘 모르겠습니다.

<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%> 
<form:form method="post" action="addContact.html"> 

    <table> 
    <tr> 
     <td><form:label path="firstname">First Name</form:label></td> 
     <td><form:input path="firstname" /></td> 
    </tr> 
    <tr> 
     <td><form:label path="lastname">Last Name</form:label></td> 
     <td><form:input path="lastname" /></td> 
    </tr> 
    <tr> 
     <td><form:label path="lastname">Email</form:label></td> 
     <td><form:input path="email" /></td> 
    </tr> 
    <tr> 
     <td><form:label path="lastname">Telephone</form:label></td> 
     <td><form:input path="telephone" /></td> 
    </tr> 
    <tr> 
     <td colspan="2"> 
      <input type="submit" value="Add Contact"/> 
     </td> 
    </tr> 
</table>  

</form:form> 

감사합니다.

<form:form modelAttribute="User" action="yourResourceUrl"> 

내가 충분히에 단어 "속성"을 사용 유무 : 작업 @ModelAttribute를 얻기 위하여

+0

이것에 대해 자세히 설명해 주시겠습니까? '사용자 모델 클래스를 만들었으므로이를 @ ModelAttribute'로 구현하고 싶습니다. –

+0

나쁜 영어로 유감스럽게 생각합니다. User 클래스가 있고 폼을 제출할 때 컨트롤러가 String을 사용하는 대신 값을 설정/가져 오기 위해 @ModelAttribute를 사용해야합니다. fName = request.getParamater ("fname"); – user525146

+0

이 유용한 http://java.dzone.com/articles/using-spring-mvc%E2%80%99s를 찾을 수있을 것입니다.이 공용 사용자 populateUser()는 특히 – ant

답변

0

, 난 당신이 사용자에게 ModelAttribute 모 데르 매핑 할 양식 태그에 ModelAttribute 모 데르 속성을 추가 할 필요가 있다고 생각 이 대답은 아직?

사용자의 인스턴스이기도 한 Command 또는 FormBackingObject를 사용하여 양식을 채울 수 있습니다. 이 경우 modelAttribute 대신 commandName 속성을 사용할 수 있습니다. 그러면 폼을 채우기 위해 사용자에게 매핑하고 사용자를 컨트롤러의 @ModelAttribute 주석에 매핑합니다.

0

나는, 당신이 @ModelAttribute("<model_attribute_name>") 사용자 사용자

과 그리고 당신의 JSP에서 자원 매핑 방법을 주석 @SessionAttributes(types = User.class) 와 컨트롤러 클래스를 주석 User.class 라는 모델 클래스를 사용하고있을 수 있습니다 가정

<form:form method="post" commandName="<model_attribute_name>" action="addContact.html"> 

    <table> 
    <tr> 
     <td><form:label >First Name</form:label></td> 
     <td><form:input path="firstName" /></td> 
    </tr> 
.... 

리소스 매핑 방법에서 다음 코드를 사용하여 양식 데이터에 액세스 할 수 있습니다.

@ResourceMapping("addUser") 
     public String addUser(ModeAttribute("<model_attribute_name>") User user ,ResourceRequest request, ResourceResponse response) { 
      String fName = user.getFirstName(); 
      ... 

      // I do the processing of the form and add the user attributes to the database. 
     } 
관련 문제