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