Servlet检索预先选择的单选按钮

时间:2014-09-26 22:08:14

标签: java servlets

我通过以下代码预先选择我的单选按钮。以下输入包装在一个回发到同一个servlet的表单中。

buf.append("<input type=\"radio\" name=\"FTNAME\" value=\""+ FTNAME+ "\" " + (FTNAME.equals("Arial") ? "checked=\"checked\"" : "") + ">Arial &nbsp &nbsp &nbsp");
buf.append("<input type=\"radio\" name=\"FTNAME\" value=\""+ FTNAME+ "\" " + (FTNAME.equals("Serif") ? "checked=\"checked\"" : "") + ">Serif &nbsp &nbsp &nbsp");
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,它总是从上面的代码中返回它所设置的内容,而不是我的新选择。

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

是的:我的建议是你最好阅读你的servlet生成的HTML代码。您会发现所有三个无线电都具有相同的值。

答案 1 :(得分:0)

因为您将所有三个单选按钮的值设置为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 &nbsp &nbsp &nbsp");
buf.println("<input type=\"radio\" name=\"FTNAME\" value=\"Serif\""+ (FTNAME.equals("Serif") ? "checked=\"checked\"" : "") + ">Serif &nbsp &nbsp &nbsp");
buf.println("<input type=\"radio\" name=\"FTNAME\" value=\"SansSerif\""+ (FTNAME.equals("SansSerif") ? "checked=\"checked\"" : "") + ">SansSerif <br><br>");