2010-08-17 7 views
2

나는 다음과 같은 파일이 있습니다단추로 숨겨진 속성에 값을 설정하는 방법은 무엇입니까?

class MyForm { 
    private boolean boo; 
    public void setBoo(boolean boo){ 
     this.boo = boo; 
    } 
    public boolean getBoo(){ 
     return this.boo; 
    } 
} 

MyFooAction.java

public class MyFooAction extends BaseAction { 

    public ActionForward execute(ActionMapping mapping, ActionForm form, 
      HttpServletRequest request, HttpServletResponse response) 
      throws Exception { 
     ActionForward aForward = null; 
     String forward = "success"; 

     try { 
      MyForm myForm = (MyForm) form; 
      String boo = (String)request.getParameter("boo"); 
      if(boo.equals("true")){ 
       System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>DONE"); 
      } 
      else { 
       //some code here 
      } 
      aForward = mapping.findForward(forward); 
     } 
     catch (Exception e) { 
      throw new Exception(); 
     } 

     return aForward; 
    } 
} 

문제는 방법에 changeBoo()을 구현하는 것입니다

을 View.jsp

<@ page import=... 
<bean:define id="mForm" name="myForm" type="MyForm"/> 
<html:form action="MyFoo" method="post" styleId="myForm" enctype="multipart/form-data"> 
<html:hidden property="boo"/> 
<input type="button" value="Press me" onclick="javascript:changeBoo()"/> 
</html:form> 

MyForm.java을 자바 스크립트를 변경하려면 e 값이 boo이고 정확한 값이 booMyFooAction을 호출 하시겠습니까?

답변

3

먼저 버튼을 type="submit"으로 변경하십시오. 그러면 양식을 제출할 것입니다. changeBoo()이 이제 onclick 특성 값을 반환하는 방법에 유의하십시오. 함수가 true을 반환하면 양식이 제출됩니다.

<html:hidden property="boo" id="booId" /> 
<input type="submit" value="Press me" onclick="return changeBoo();"/> 

그런 다음이 자바 스크립트 함수를 만드는 단지 문제 : 당신은 쉽게 자바 스크립트에서 참조를 얻을 수 있도록

또한, 당신은 당신의 숨겨진 필드에 id 속성을 추가해야합니다 : 당신의 <html:form>...</html:form>

function changeBoo(){ 
    var boo = document.getElementById('booId');  
    boo.value = 'The new value'; 
    return true; 
} 
+0

감사합니다 :)하지만 이드는 필요하지 않습니다. 그것 없이는 모든 것이 잘 작동합니다. 오류 : 속성 : id가 유효한 속성 이름이 아닙니다. –

1

PS, 당신이 양식을 제출하는 방법이 있는지 확인하십시오. 이는 일반적으로 <html:submit>을 추가하여 수행됩니다.

지금, 다시 귀하의 질문에 와서, 당신의 자바 스크립트 기능 (스트럿 - config.xml 파일에 지정된 사용자의 ActionForm 이름이 "myForm을"이 있다고 가정 )과 같이 될 것입니다. 스트럿츠 마음에

fumction changeBoo() { 
    var boo = document.myForm.boo; 
    if ("true" == boo.value.toLowerCase() || "yes" == boo.value.toLowerCase() || "1" == boo.value.toLowerCase()) { 
    boo.value = "false"; 
    } else { 
    boo.value = "true"; 
    } 
} 

곰이 "true"또는 "false", "예"또는 "아니오", "0"또는 "1"부울 값을 변환합니다.

관련 문제