2014-10-10 71 views
0

这里。我在我的jsp文件上创建了列表框,并通过使用getParameter获得了我的servlet中的选定值。现在我想设置listbox的值在我以前选择的同一个jsp文件中,当我从servlet重新载入相同的jsp文件时。如何在servlet中设置jsp的列表框值


JSP文件

<tr><td>Operation:<select name="state" > 
      <option value="1">Addition</option> 
      <option value="2">Subtraction</option> 
      <option value="3">Multiplication</option> 
      <option value="4">Division</option> 
        </select></td></tr> 

的servlet文件

operation=req.getParameter("state"); 
    n3=Integer.parseInt(operation); 

回答

1

您需要使用选择标记属性selected

<select name="state"> 
    <option value="1" ${'1' eq param.state ? 'selected' : ''}>Addition</option> 
    <option value="2" ${'2' eq param.state ? 'selected' : ''}>Subtraction</option> 
    <option value="3" ${'3' eq param.state ? 'selected' : ''}>Multiplication</option> 
    <option value="4" ${'4' eq param.state ? 'selected' : ''}>Division</option> 
</select> 

注意:请确保您重定向到jsp使用RequestDispatcher.forward(request, response)

$ {}是在jsp中提供的表达式语言(EL)。在EL中,${param.state}相当于request.getParameter("state")

eq是EL中的逻辑运算符,甚至可以使用==来表示相同。

使用带有请求属性,您可以尝试:

<option value="1" ${'1' eq requestScope.data ? 'selected' : ''}>Addition</option> 
+0

**亚拉文:**你能解释一下...... '$ {' 1' 情商param.state? 'selected':''}'这里是什么eq param.state? – user3075386 2014-10-10 06:08:54

+0

''我用过这样的东西..但它会抛出错误。 – user3075386 2014-10-10 06:21:11

+0

@ user3075386,你为什么使用属性?你不是在使用'RequestDispatcher.forward(request,response)'来重写吗? – Arvind 2014-10-10 06:23:18