2011-01-17 8 views
1

jsp 페이지를 만들었습니다. 1 체크 박스를 선택하거나 확인란을 모두 선택하거나 선택하지 않으면 해당 텍스트 상자와 목록 상자가 같은 페이지에 표시되어야합니다.jsp in javascript

나는 그 확인란을 클릭하면 javascipt 함수를 호출 해 보았습니다. javascript 함수는 텍스트 상자를 표시하는 코드를 포함합니다. 그러나 그것은 효과가 없었습니다.

저는이 프로젝트를 struts에서하고 있기 때문에 체크 박스 값을 얻는 방법을 모르겠습니다. JavaScript 함수 호출이 작동합니다. 그러나 JavaScript 함수에서 JSP 코드를 입력하지 않았습니다.

내 코드가 어떻게 작동하는지 이것은

<tr> 
<td>SEJ:</td> 
<td>SEJ 1:<html:checkbox property="sej1" value="on" onclick="checkbox_trial()"></html:checkbox></td> 
<td>SEJ 2:<html:checkbox property="sej2" value="on" onclick="checkbox_trial()"></html:checkbox></td> 
</tr> 


    <script type="text/javascript"> 
    function checkbox_trial() 
    { 

     <% if(request.getParameter("sej1")=="on"){ 
    %> 
    <tr><td>SEJ1 Age<html:text property="sej1_age"></html:text></td></tr> 
    <tr><td>SEJ1 DOI<html:text property="sej1_doi"></html:text></td></tr> 
    <%} 

     else if(request.getParameter("sej2")=="on"){%> 
    <tr><td>SEJ2 Age<html:text property="sej2_age"></html:text></td></tr> 
     <tr><td>SEJ2 DOI<html:text property="sej2_doi"></html:text></td></tr> 
    <%} 

     else if((request.getParameter("sej1")=="on")&&(request.getParameter("sej2")=="on")){%> 
    <tr><td>SEJ1 Age<html:text property="sej1_age"></html:text></td></tr> 
    <tr><td>SEJ1 DOI<html:text property="sej1_doi"></html:text></td></tr> 
    <tr><td>SEJ2 Age<html:text property="sej2_age"></html:text></td></tr> 
    <tr><td>SEJ2 DOI<html:text property="sej2_doi"></html:text></td></tr> 
    <%} 

     else{%> 
    NOTHING <% } %> 
    } 

+0

질문에 답변하려고 할 때 참조 할 수 있도록 코드를 게시하고 싶습니까? 특히, HTML과 자바 스크립트, 그리고 관련 부분만을 볼 필요가 있습니다. 제발 전체 프로젝트를 게시하지 마십시오;) – jmort253

답변

3

입니다 : 자바/JSP는 웹 서버에서 실행이 HTML/CSS/JS를 생산하고, 웹 서버가 웹 브라우저로 전송, 웹 브라우저는 HTML/CSS/실행 JS. Java/JSP가 아닙니다. 웹 브라우저에서 페이지를 마우스 오른쪽 버튼으로 클릭하고 소스보기을 선택하십시오. Java/JSP가 제대로 작동했다면 거기에 어떤 행도 표시되지 않아야합니다.

JavaScript를 사용하여 Java/JSP 코드를 호출하려면 웹 서버에 대한 다른 HTTP 요청을 호출하여 특정 요청을 기반으로 Java/JSP 코드를 실행할 수 있도록해야합니다. 양식을 제출하거나 비동기 (ajaxical) 요청을 실행하여이를 수행 할 수 있습니다.

Struts를 사용하고 있다는 사실을 감안할 때 아약스는 다소 복잡 할 것입니다. 난 그냥 체크 박스

<input type="checkbox" name="show" value="true" onclick="submit()" /> 

의 클릭에 양식을 제출하는 것이 좋습니다 다음 JSP 조건부 입력 필드 (나는 스트럿츠하지 않기 때문에 단지 JSTL 예)

<c:if test="${param.show == 'true'}"> 
    <input type="text" /> 
    <select /> 
</c:if> 

을 표시 할 것

업데이트 : 코드의 다른 주요 문제가 있습니다. Java 코드에서 문자열 값을 ==으로 비교할 수 없습니다 (EL에서만 그렇게 할 수 있음). Java 코드에서는 equals() 메소드를 사용해야합니다. 그렇지 않은 경우 값 대신 참조로 비교됩니다. 나는 기본적인 자바도 배울 것을 제안 할 것이다.

+0

추악한 솔루션 -하지만 OP의 질문 (경험 부족)에 따라 동의하는 것이 가장 좋습니다. OP는 결국 AJAX 사용법을 배우는 것이 좋습니다. – jmort253

+0

OP에 관심이있는 경우 [첫 번째 질문] (http://stackoverflow.com/questions/4114742/simple-calculator-in-jsp)에 대한 내 대답에는 첫 번째 Ajax 단계에 대한 좋은 예가 포함되어 있습니다. 그러나 Struts를 대상으로 한 것은 아닙니다. – BalusC

+0

안녕 Balu, JSTL 예제의 첫 번째 줄을 설명 할 수 있습니까? 나는 그것에 익숙하지 않기 때문에 나는 이해할 수 없다. – Pavalesh