请求参数值在包含空格时被截断为第一部分

时间:2011-05-27 04:27:27

标签: jsp whitespace truncated http-request-parameters

我在jsp / servlet中的下拉框有一个奇怪的问题。这是......

  <select name="locdropdown" onchange="javascript:change()" > 
<%
for(LocationDO locationDO : locationList){%>
<option value=<%=locationDO.getLocationName().trim()%>><%=locationDO.getLocationName().trim()%></option> 
<%} %>
</select>

显示的值是:

 BI Sholingar
 BI Mahindra City
 BI Sanand 
 Rolltec_DTA
 Aztec Auto Ltd
 BI Gurgoan

以下是我尝试在servlet中读取它的方法。

String locclasses = req.getParameter("locdropdown");
System.out.println(locclasses);

假设我选择Aztec Auto Ltd然后来自servlet的预期输出是相同的。但输出为Aztec。同样,如果我选择BI Sanand,则实际输出为BI

有人可以帮忙吗

2 个答案:

答案 0 :(得分:3)

您需要引用该值。

<option value="<%=locationDO.getLocationName().trim()%>">

空格是HTML属性分隔符。当您通过右键单击页面&gt;检查生成的HTML时,具有一点体面语法高亮显示的浏览器已经暗示了它。 查看来源

<option value=Aztec Auto Ltd>

<option value="Aztec Auto Ltd">

答案 1 :(得分:0)

正如BalusC在回答中所说,问题在于你的价值分配。

将您的代码修改为:

<select name="locdropdown" onchange="javascript:change()" > 
<%
for(LocationDO locationDO : locationList)
{%>
<option value="<%=locationDO.getLocationName().trim()%>" >
        <%=locationDO.getLocationName().trim()%>
</option> 
<%} 

%>
</select>

希望这有帮助。