2011-05-27 54 views
1

我在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); 

以为我选择的servlet Aztec Auto Ltd那么预期输出是同样的权利。但产量是Aztec。同样,如果我选择BI萨纳恩德,自带实际产量BI

有人可以帮助请

回答

3

您需要引用值。

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

的空间是即HTML属性隔板。一个有点像样的语法荧光笔的浏览器在您通过右键页面>查看源代码检查生成的HTML时已经暗示过它。

<option value=Aztec Auto Ltd> 

<option value="Aztec Auto Ltd"> 
+0

谢谢。它工作 – narayanan 2011-05-27 04:37:33

+1

不客气。你的代码中的'onchange =“javascript:change()”''''''''''''它基本上是自称。去掉它。使用* scriptlets *也是[不鼓励](http://stackoverflow.com/questions/3177733/how-to-avoid-java-code-in-jsp-files)。我建议去调查taglibs/EL。 – BalusC 2011-05-27 04:39:11

+0

@mahendraliya:在问题发布15分钟后,最早可以接受答案。 – BalusC 2011-05-27 04:41:41

0

正如BalusC说,他的回答的问题是你的价值分配。

修改代码为:

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

%> 
</select> 

希望这有助于。

+2

是的。我只是不确定你为什么重复已经给出的答案。 – BalusC 2011-05-27 04:44:07

+0

我刚刚发布了完整的代码,可以直接使用。它只是你指出,但没有提供更正的代码..不介意:-) – 2011-05-27 04:56:10

相关问题