使用Servlet映射具有相同名称但值不同的单选按钮

时间:2013-06-02 15:16:23

标签: java html servlets

我遇到了代码的一个问题。我想让我的代码可重复使用。我能够实现这一功能。

我正在使用Servlet中的代码。这个servlet具有不同的函数.Servlet用于递归事件,即所有事件每次都以不同的隐藏值继续到同一个servlet。 我有一堆单选按钮,如:

out.println("<INPUT TYPE=RADIO NAME=Q1 VALUE='A'/>script<BR/>"); 
out.println("<INPUT TYPE=RADIO NAME=Q1 VALUE='B'/>javaScript<BR/>");
out.println("<INPUT TYPE=RADIO NAME=Q1 VALUE='C'/>scripting<BR/>"); 
out.println("<INPUT TYPE=RADIO NAME=Q1 VALUE='D'/>js<BR/><BR/>"); 

用于检查四个单选按钮中的一个 - 我使用INPUT TYPE = RADIO NAME = Q1 VALUE ='D'选中

我的问题是: 我在每个提交按钮点击时将单选按钮的值发送到servlet。我也可以检索它。但是我无法在后退按钮单击上为单选按钮分配相同的值(后退按钮是一个提交按钮)。有没有办法用java代码选择带有值的单选按钮(每个单选按钮的名称相同)。

我尝试了传统的旧方法来实现功能。代码是 -

if(q2.equalsIgnoreCase("E"))
{
out.println("<INPUT TYPE=RADIO NAME=Q2 VALUE='E' checked/>echo \"Hello World\";<BR/>"); 
out.println("<INPUT TYPE=RADIO NAME=Q2 VALUE='F'/>document.write(\"Hello World\");<BR/>"); 
out.println("<INPUT TYPE=RADIO NAME=Q2 VALUE='G'/>(\"Hello World\");<BR/>"); 
out.println("<INPUT TYPE=RADIO NAME=Q2 VALUE='H'/>response.write(\"Hello World\");<BR/><BR/>");    
}
if(q2.equalsIgnoreCase("F"))
{
out.println("<INPUT TYPE=RADIO NAME=Q2 VALUE='E' />echo \"Hello World\";<BR/>"); 
out.println("<INPUT TYPE=RADIO NAME=Q2 VALUE='F' checked/>document.write(\"Hello World\");<BR/>"); 
out.println("<INPUT TYPE=RADIO NAME=Q2 VALUE='G'/>(\"Hello World\");<BR/>"); 
out.println("<INPUT TYPE=RADIO NAME=Q2 VALUE='H'/>response.write(\"Hello World\");<BR/><BR/>");    
}
if(q2.equalsIgnoreCase("G"))
{
out.println("<INPUT TYPE=RADIO NAME=Q2 VALUE='E' />echo \"Hello World\";<BR/>"); 
out.println("<INPUT TYPE=RADIO NAME=Q2 VALUE='F' />document.write(\"Hello World\");<BR/>"); 
out.println("<INPUT TYPE=RADIO NAME=Q2 VALUE='G'checked/>(\"Hello World\");<BR/>"); 
out.println("<INPUT TYPE=RADIO NAME=Q2 VALUE='H'/>response.write(\"Hello World\");<BR/><BR/>");    
}
if(q2.equalsIgnoreCase("H"))
{
out.println("<INPUT TYPE=RADIO NAME=Q2 VALUE='E' />echo \"Hello World\";<BR/>"); 
out.println("<INPUT TYPE=RADIO NAME=Q2 VALUE='F' />document.write(\"Hello World\");<BR/>"); 
out.println("<INPUT TYPE=RADIO NAME=Q2 VALUE='G' />(\"Hello World\");<BR/>"); 
out.println("<INPUT TYPE=RADIO NAME=Q2 VALUE='H' checked/>response.write(\"Hello World\");<BR/><BR/>");    
}

但是这不支持代码重用。任何人都可以用小代码帮助我解决这个问题。

由于 Prateek

1 个答案:

答案 0 :(得分:0)

private void printRadioButton(String letter, String selectedLetter) {
    out.print("<input type='radio' name='Q2' value='");
    out.print(letter);
    out.print("'");
    if (selectedLetter.equals(letter)) {
        out.print(" checked='checked'");
    }
    out.println("/>");
}