2010-04-21 2 views
1

Spring MVC 포틀릿을 동적으로 설정할 수 있습니까? actionURL portlet : param javascript? 다음 코드를 시도했지만 id 값은 항상 null로 컨트롤러에 전달됩니다. PARAM 수동으로 올바르게 값을 전달 : 나는 포틀릿을 설정하는 것을 확인했다Spring MVC - Javascript로 actionURL 매개 변수 설정

<portlet:param name="id" value="2" /> 

는 또한 올바르게 설정되고있는 자바 스크립트의 값을 확인하고 null가 아닌있다.

(참고 :. 나는 내 고용주의 코드이기 때문에 그것을 단순화하고 당황 원래 코드에서 등, 변수 이름을 변경했습니다)

JSP :

<portlet:actionURL var="modifyURL"> 
    <portlet:param name="do" value="modify" /> 
    <portlet:param name="id" value="${model.id}" /> 
</portlet:actionURL> 

... 

<form:form action="${modifyURL}" id="modifyForm" modelAttribute="model"> 
    <form:hidden path="id" id="id" /> 
</form:form> 

function update() { 
    document.forms[0]["id"].value = selectedId; 
    document.forms[0].submit(); 
} 

컨트롤러 :

자바 스크립트 업데이트 URL을 클릭 할 때 호출
@RequestMapping(params = {"do=modify"}) 
public void modify(@ModelAttribute("model") Model model, 
    @RequestParam(value = "id", required=true) Long id, 
    ActionRequest request, ActionResponse response, 
    SessionStatus sessionStatus, ModelMap modelMap) { 
.... 

답변

0

동료가 알아 냈습니다. 자바 스크립트 내의 액션에 매개 변수를 추가하고 actionURL 또는 폼에는 매개 변수를 포함하지 않아야합니다.

JSP :

<portlet:actionURL var="modifyURL"> 
    <portlet:param name="do" value="modify" /> 
</portlet:actionURL> 

... 

<form:form action="${modifyURL}" id="modifyForm" modelAttribute="model" method="POST"> 
</form:form> 

자바 스크립트가 업데이트 URL을 클릭 할 때 호출 :

function update() { 
    $("modifyForm").action = '${modifyURL}&id='+selectedId; 
    $("modifyForm").submit(); 
} 
0

내가 거의 삼년 나중에 우연히 만났다는 여전히 내가 쉽게 숨겨진 양식 필드를 추가 발견 이 값을 숨겨진 필드에 설정하는 것보다 작업을 클릭 할 때

<input type="submit" id="btn_terminate_cmpn" 
       value="Terminar campa&ntilde;a" onclick="setAction('terminate');"> 

및 자바 스크립트 코드

function setAction(action){ 
    $("#actionToDo").val(action); 

} 
0

포틀릿 태그에 의해 생성 된 URL은 서버 측에있다. Javascript에는 포틀릿 태그가 표시되지 않습니다. 실제 URL 만 볼 수 있습니다. 동료가 제안하는 것은 효과가 있지만 좋은 방법은 아닙니다. 여기에서는 동적 매개 변수를 쿼리 문자열 매개 변수로 추가하여 대상 포털 페이지의 모든 포틀릿에 표시합니다. 더 좋은 해결책은 숨겨진 요소 (텍스트 상자 또는 무언가)를 유지하고 onSubmit Javascript 핸들러 함수에서이 숨겨진 요소에 동적 값을 설정하는 것입니다.