2015-02-19 4 views
0

Это моя страница JSPНевозможно нажать кнопки радио, кроме проверяемого один в JSP

<%! 
    // Table row colors 
    static final String[] COLORS = { "#E0E0E0", "#F0F0F0" }; 

    // Array of tab codes, labels and JSP names 
    static final String[][] TABS = { 
            {"HD", "Headers", "ShowRequestHeaders.jsp"} , 
            {"PM", "Parameters", "ShowParameters.jsp"}, 
            {"SR", "ServletRequest Methods", "ShowServletRequestMethodValues.jsp"}, 
            {"HR", "HttpServletRequest Methods", "ShowHttpServletRequestMethodValues.jsp"} 
    }; 


%> 
    <html> 
<head> 
    <title>Show Request</title> 
</head> 
<body> 
    <h2>Show Request</h2> 
    <form > 
     <table border="1" cellpadding="5" cellspacing="5"> 
     <tr> 
      <td align="left"> 
        <% 
         String which = request.getParameter("which"); 
         if (which == null) 
          which = TABS[0][0]; //HD 
         String jspToRun = null; 
         for (int i = 0; i < TABS.length; i++) { 

          String tabCode = TABS[i][0]; 
          String tabLabel = TABS[i][1]; 
          String tabJSP = TABS[i][2]; 
          String CHECKED = ""; 
          if (which.equals(tabCode)) { 

           CHECKED = "CHECKED"; 
           jspToRun = tabJSP; 
          } 
        %> <input name="which" type="RADIO" value= "<%=tabCode%>" 
                   <%=CHECKED%> onClick="this.form.submit()" 
                   > 
                   <%=tabLabel%> 

        <% 
         } 
        %> 
        <p> 
      </td> 
     </tr> 

     <tr> 
      <td align="center" valign="top"> 

       <!-- Page showing details of the request --> 
       <jsp:include page="<%= jspToRun %>" flush="true"></jsp:include> 

Различные JSP, включаются в зависимости от радио-кнопка нажата. Когда я попытался проверить переключатель, отличный от отмеченного, изменений нет. Пожалуйста, помогите мне.

+0

Вы уверены, что ваша страница представляет? Я скопировал и вставил ваш код (закрывая HTML-теги), и он работал нормально. –

ответ

1

Использование нижеприведенного JSP-файла работало отлично для меня. Когда я нажимаю радиокнопку, форма отправляется и соответствующий JSP-файл включается, когда страница обновляется.

Обратите внимание, что я назвал файл JSP index.jsp и включил другие JSP-файлы в тот же каталог.

<%!// Table row colors 
static final String[] COLORS = { "#E0E0E0", "#F0F0F0" }; 

// Array of tab codes, labels and JSP names 
static final String[][] TABS = { 
     { "HD", "Headers", "ShowRequestHeaders.jsp" }, 
     { "PM", "Parameters", "ShowParameters.jsp" }, 
     { "SR", "ServletRequest Methods", 
       "ShowServletRequestMethodValues.jsp" }, 
     { "HR", "HttpServletRequest Methods", 
       "ShowHttpServletRequestMethodValues.jsp" } };%> 
<html> 
<head> 
<title>Show Request</title> 
</head> 
<body> 
<h2>Show Request</h2> 
<form> 
    <table border="1" cellpadding="5" cellspacing="5"> 
     <tr> 
      <td align="left"> 
       <% 
        String which = request.getParameter("which"); 
        if (which == null) 
         which = TABS[0][0]; //HD 
        String jspToRun = null; 
        for (int i = 0; i < TABS.length; i++) { 

         String tabCode = TABS[i][0]; 
         String tabLabel = TABS[i][1]; 
         String tabJSP = TABS[i][2]; 
         String CHECKED = ""; 
         if (which.equals(tabCode)) { 

          CHECKED = "CHECKED"; 
          jspToRun = tabJSP; 
         } 
       %> <input name="which" type="RADIO" value="<%=tabCode%>" 
       <%=CHECKED%> onClick="this.form.submit()"> <%=tabLabel%>  <% 
} 
%> 
       <p> 
      </td> 
     </tr> 

     <tr> 
      <td align="center" valign="top"> 
       <!-- Page showing details of the request --> <jsp:include 
        page="<%=jspToRun%>" flush="true"></jsp:include> 

      </td> 
     </tr> 
    </table> 
</form> 
</body> 
</html> 

Сгенерированный HTML. Обратите внимание, что я просто использовал имя файла в качестве содержимого для включенных файлов JSP:

<html> 
<head> 
<title>Show Request</title> 
</head> 
<body> 
<h2>Show Request</h2> 
<form> 
    <table border="1" cellpadding="5" cellspacing="5"> 
     <tr> 
      <td align="left"> 
       <input name="which" type="RADIO" value="HD" 
       CHECKED onClick="this.form.submit()"> Headers <input name="which" type="RADIO" value="PM" 
       onClick="this.form.submit()"> Parameters <input name="which" type="RADIO" value="SR" 
       onClick="this.form.submit()"> ServletRequest Methods <input name="which" type="RADIO" value="HR" 
       onClick="this.form.submit()"> HttpServletRequest Methods 
       <p> 
      </td> 
     </tr> 

     <tr> 
      <td align="center" valign="top"> 
       <!-- Page showing details of the request --> ShowRequestHeaders.jsp 

      </td> 
     </tr> 
    </table> 
</form> 
</body> 
</html> 
+0

Что происходит, если вы нажали на переключатель, отличный от отмеченного. Скажем, есть 3 переключателя, 3 файла jsp, исключая index.jsp. Вы видите другой контент под переключателями в index.jsp, когда вы перемещаетесь с одного переключателя на другой. –

+0

Да, я вижу другое содержимое, когда я выбираю переключатель, не являющийся по умолчанию. Я обновлю свой ответ, чтобы показать сгенерированный HTML. –

Смежные вопросы