2013-03-06 2 views
0

JSP에서 모델에 액세스하는 방법을 알려주십시오. 내가 모델에 문자열을 추가 한 형태가 새로 캔트JSP에서 모델을 새로 고치거나 액세스하는 방법

$('#uINewsSystemList').change(function() { 
    $.get("/application/systemById"); 
); 

<form:form id="systemForm" commandName="systemForm"> 
<tr> 
    <td valign="top"><form:input path="fSystemName" value="${fSystemName}" size="20" />&nbsp;</td>      
</tr> 

:

@RequestMapping(value = "/systemById", method = RequestMethod.GET) 
public void getSystemById(Model model, OutputStream outputStream) throws IOException { 
    model.addAttribute("fSystemName", "Test name"); 
    name = system.getName(); 
} 

JSP 코드 :

이 내 컨트롤러입니다. 어떤 아이디어?

+0

정확히 무엇을 하려는지 설명해 주시겠습니까? JSP가 컨트롤러에 연결된보기입니까? '# uINewsSystemList'가 변경되면 양식을 동적으로 업데이트 하시겠습니까? –

+0

예, uINewsSystemList에서 항목을 선택하면 양식의 값을 적절하게 변경해야합니다. 그리고 예 JSP는 컨트롤러와 관련된 뷰입니다 – maloney

답변

3

사용자 상호 작용을 기반으로 ajax 호출을하면 호출하는 플로우는 페이지를 렌더링하는 데 사용한 원래 JSP와는 아무런 관련이 없습니다.

getSystemById 메소드가 (양식 제출/POST를 통해) 페이지를 완전히 다시 렌더링하거나 JavaScript를 통해 실제로 필요한 데이터를 반환하도록 예제 코드를 변경할 수 있습니다. 당신이이 같은 것을 볼 수 있었다 변경 사항을 업데이트 동적 찾고 있습니다 언급 한 이후 : 당신은 UI를 업데이트하기 위해 반환 된 데이터를 사용하는 경우

@RequestMapping(value = "/systemById/${id}", method = RequestMethod.GET) 
public String getSystemById(@PathVariable String id) throws IOException { 
    //lookup new system data by id 
    Model model = someService.getModelById(id); 
    return model.getName(); //you can return more than just name, but then you will need some sort of conversion to handle that data (json, xml, etc.) 
} 

클라이언트 Ajax 호출은 성공의 기능을하도록 설정해야합니다.

$('#uINewsSystemList').change(function() { 
    var id = $(this).val(); 
    $.get("/application/systemById/" + id, function(returnedData){ 
     //use returnedData to refresh the ui. 
     $('selectorForSystemNameField').val(returnedData); 
    }); 
); 
+0

컨트롤러가 이미 뷰 이름으로 문자열을 기대하도록 설정되어 있다면 getSystemById 메소드에 @ResponseBody 주석이 필요합니다. – purgatory101

관련 문제