[英]Servlet retrieve pre selected radio button
我通过以下代码预先选择单选按钮。 以下输入以回传到同一servlet的形式包装。
buf.append("<input type=\"radio\" name=\"FTNAME\" value=\""+ FTNAME+ "\" " + (FTNAME.equals("Arial") ? "checked=\"checked\"" : "") + ">Arial      ");
buf.append("<input type=\"radio\" name=\"FTNAME\" value=\""+ FTNAME+ "\" " + (FTNAME.equals("Serif") ? "checked=\"checked\"" : "") + ">Serif      ");
buf.append("<input type=\"radio\" name=\"FTNAME\" value=\""+ FTNAME+ "\" " + (FTNAME.equals("SansSerif") ? "checked=\"checked\"" : "") + ">SansSerif <br><br>");
但是,当我尝试做
FTNAME = request.getParameter("FTNAME") == null ? "Arial" : request.getParameter("FTNAME"); //Arial as font name default
为了获得我的FTNAME,它总是返回上面代码中设置的内容,而不是我的新选择。
有什么建议吗?
是的:我的建议是您最好阅读servlet产生的HTML代码。 您会发现所有三个无线电都具有相同的值。
因为您将所有三个单选按钮的值都设置为Arial。 因此,无论您选择哪种单选按钮,都将始终返回您的里亚尔。
这就是您的html页面的样子:
<input type="radio" name="FTNAME" value="Arial" checked="checked">
<input type="radio" name="FTNAME" value="Arial">
<input type="radio" name="FTNAME" value="Arial">
而且您的servlet request.getParameter("FTNAME")
会返回值“ Arial”。 您需要更改为这样的内容
buf.println("<input type=\"radio\" name=\"FTNAME\" value=\"Arial\"" + (FTNAME.equals("Arial") ? "checked=\"checked\"" : "") + ">Arial      ");
buf.println("<input type=\"radio\" name=\"FTNAME\" value=\"Serif\""+ (FTNAME.equals("Serif") ? "checked=\"checked\"" : "") + ">Serif      ");
buf.println("<input type=\"radio\" name=\"FTNAME\" value=\"SansSerif\""+ (FTNAME.equals("SansSerif") ? "checked=\"checked\"" : "") + ">SansSerif <br><br>");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.