2012-07-25 2 views
1

jsp 파일 내부의 함수를 사용하여 3 개의 버튼을 인쇄하고 싶습니다. 내 길은 틀린 것 같기 때문에 그렇게하는 것이 옳은 길입니다.JSP 파일 내에서 함수를 올바르게 사용하기

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title>Test Page</title> 

     <%! 
     int j = 3; 
     %> 

     <%! 
     public void manyButtons() { 
      for (int i = 0; i < j; i++) { 
       %> 
       <input type="button" value="button<%=i%>"/> 
       <%!     
      } 
     } 

     %>   
    </head 
    > 
    <body> 

     <% manyButtons(); %> 

    </body> 
</html> 
+1

JSP로 자바 코딩을 피하면 정말 엉망이 될 수 있습니다. 코드가 늘어남에 따라 일치하는 중괄호, 태그를 식별하는 것이 어려울 것입니다. – devang

+0

네, 틀린 것 같습니다. 또한, 달성하려는 내용에 대한 설명이 명확하고 충분하지 않습니다. –

+0

3 버튼을 인쇄하고 싶습니다. 나는 JSP 바디에서 그렇게하려고하는 manyButtons() 함수를 호출하고있다. –

답변

2

의견에 Java를 사용하지 않으려는 경우. 고맙게도 JSTL로 쉽게 할 수 있습니다. forEach 루프는 다음과 같이 사용하십시오.

<c:forEach var="i" begin="1" end="3" step="1" varStatus="status"> 
    <input type="button" value="button${i}"/> 
</c:forEach> 

이것은 사용자가하려는 것을 복제해야합니다.

0

저는 Java EE 개발자가 아니지만 JSP가 작성중인 메소드를 포함 할 서블릿으로 변환된다는 것을 알고 있습니다. 당신은 그 requestresponse 객체가 service() 메쏘드로 전달된다는 것을 알아야합니다. 그래서 여러분의 메쏘드는 응답 객체에 기본적으로 접근 할 수 없으므로 응답으로부터 출력 데이터를 출력기에 넣을 수 없습니다.

Raskolnikov showed +1과 같이 JSTL의 <c:for ...>을 사용하는 것이 좋습니다. 메소드에서 String으로 생성 된 데이터를 반환하고 <%= manyLabels() %>에서 사용할 수 있습니다. 내 말은 무슨 뜻입니까

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title>Test Page</title> 

     <%! 
     public String manyLabels(int j) { 
      StringBuilder sb=new StringBuilder(); 
      for (int i = 0; i < j; i++) { 
       sb.append("<input type=\"button\" value=\"button"+i+"\"/>"); 
      } 
      return sb.toString(); 
     } 
     %>   
    </head 
    > 
    <body> 

     <%= manyLabels(3) %> 

    </body> 
</html> 
관련 문제