如何设置select ="选择"按请求获取属性

时间:2014-12-26 13:20:39

标签: javascript jsp

HI我想要显示jsp中请求属性获取的城市(下拉框)值。
这里的城市是下拉列表..我想设置select ="选择"来自特定城市的基于请求值..如何通过JSP或Javascript设置?

3 个答案:

答案 0 :(得分:1)

这是一种在JSP中使用表达式语言的技术。

        <select name="color">
            <option color="red" ${param.color eq 'red' ? 'selected' : ''}>Red</option>
            <option color="green" ${param.color eq 'green' ? 'selected' : ''}>Green</option>
            <option color="blue" ${param.color eq 'blue' ? 'selected' : ''}>Blue</option>
        </select>

我不喜欢这个解决方案,但这里写的很简单。我不会在大型网站上使用此解决方案。

另一种解决方案是使用Java在映射中设置值,然后访问JSP中的值。

在JSP中包含此代码:

<%@page contentType="text/html" pageEncoding="UTF-8" import="java.util.Map,java.util.HashMap"%>
<%
   Map<String, String> sport = new HashMap<String, String>();
   sport.put(request.getParameter("sport"), "selected");
   request.setAttribute("sport", sport);
%> 

将选择组写为:

        <select name="sport">
            <option value="nfl" ${sport.nfl}>NFL</option>
            <option value="nba" ${sport.nba}>NBA</option>
            <option value="mlb" ${sport.mlb}>MLB</option>
        </select>

我更喜欢创建不包含Java代码的简单JSP。最好的解决方案是在JSP后面使用servlet并将所有Java代码移动到servlet,使JSP非常简单。上面的代码可以重构,并在servlet和JSP之间进行分割。

这个想法可以扩展到处理多个选择列表。创建一个名为selected的较大地图会很有用,该地图包含所有选定组的所有较小地图。

    Map<String, String> toppings = new HashMap<String, String>();
    if (request.getParameterMap().get("toppings") != null) {
        for (String value : request.getParameterMap().get("toppings")) {
            toppings.put(value, "selected");
        }
    }

    Map<String, Map<String, String>> selected = new HashMap<String,
       Map<String, String>>();
    selected.put("toppings", toppings);
    selected.put("sport", sport);
    request.setAttribute("selected", selected);

将修改选择组以首先访问所选地图,然后修改组地图。

        <select name="toppings" multiple>
            <option value="sprinkles" ${selected.toppings.sprinkles}>Sprinkles</option>
            <option value="fudge" ${selected.toppings.fudge}>Fudge</option>
            <option value="snickers" ${selected.toppings.snickers}>Snickers</option>
        </select>

        <select name="sport">
            <option value="nfl" ${selected.sport.nfl}>NFL</option>
            <option value="nba" ${selected.sport.nba}>NBA</option>
            <option value="mlb" ${selected.sport.mlb}>MLB</option>
        </select>

这可以进一步扩展,以便自动填充选定的地图,但这需要bean和注释。

答案 1 :(得分:0)

Hers是使用jquery

设置所选值的代码
$("document").ready(function(){
    //say you have got 555 from the JSP as selcted value
    var selValue = "555";
    $("#selectnumber").val(selValue).attr("selected","selected")   
});

http://jsfiddle.net/ksx9323r/1/

希望你期待同样的事情 欢呼声

答案 2 :(得分:0)

作为@petdowneyt的答案,这对我有用:

jsp文件中的代码:

<select name="operator" >
  <option value="ADD" ${operator eq 'ADD' ? 'selected' : ''}>+</option>
  <option value="SUBTRACT" ${operator eq 'SUBTRACT' ? 'selected' : ''}>-</option>
  <option value="MULTIPLY" ${operator eq 'MULTIPLY' ? 'selected' : ''}>X</option>
  <option value="DIVIDE" ${operator eq 'DIVIDE' ? 'selected' : ''}>/</option>           
</select>

Servlet中的代码:

HttpSession session = request.getSession(true);
String op = request.getParameter("operator");
session.setAttribute("operator", op);