我正在尝试设置一个通用的使用环境下拉选择(用于查询),该选择位于其自己的JSP中,该头包含在jsp中,该jsp包含在向servlet提交请求的jsp中。但是,我无法从jsp访问环境下拉参数(它返回null)。 JSP编写如下:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<c:set var="base" value ="${pageContext.request.contextPath}"/>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale-1.0">
<link rel="stylesheet" href="${base}/path/to/css/maintEnvironmentCss.css"/>
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
</head>
<div class="container">
<div class="row">
<div class="col-md-10 col-md-offset-10">
<div class="form-group">
<form>
<select class="env-group" id="idname" name="idname">
//Properly formatted options (removed on SO for security reasons)
</select>
</form>
</div>
</div>
</div>
</div>
</html>
它使用JSTL
包含在标题中<jsp:include page="/path/to/jsps/maintEnvironment.jsp"></jsp:include>
请求jsp中也包括哪个:
<jsp:include page="/path/to/jsps/header2.jsp"></jsp:include>
我尝试这样称呼它:
UnStickReports usr = new UnStickReports(request.getParameter("idname"));
但每当我调试时,返回的参数为null,这使得servlet抛出nullpointerexception。我知道这是一个继承问题,但是,如果没有手动将菜单手动放在每个页面上,我该怎么做才能使参数可继承?我确实尝试将选择设置为会话变量,但也失败了。
<script>
function setEnv() {
var env = document.getElementById("idname");
session.setAttribute("attName",env.value);
}
</script>
使用这个,我仍然使用这个值得到null:
UnStickReports usr = new UnStickReports((String) request.getAttribute("attName"));
我从其他类似的问题中看到了以下建议:
<jsp:include page="callee.jsp" />
<jsp:param name="param2" value="value2" />
<jsp:param name="param3" value="value3" />
</jsp:include>
但这会覆盖应该从该jsp传递的值,除非您需要不需要用户输入的硬编码值,否则这对我来说似乎没用。
答案 0 :(得分:0)
我要做的第一件事就是给表单一个方法,一个动作然后确保控件正在通过,我相信你会找到一些东西。
这个JSP代码或JavaScript是什么?看起来对我来说都不是。
select