<script>
function gotoDetail(Request)
{ <% HttpSession AtaSession = request.getSession(true);%>
if(Request=="DRY"){
<%AtaSession.setAttribute("LoadPort","DRY");%>
window.open("loadportbookingdetail.jsp");
}else if(Request=="GAX"){
<%AtaSession.setAttribute("LoadPort","GAX");%>
window.open("loadportbookingdetail.jsp");
}else if(Request=="GAZ"){
<%AtaSession.setAttribute("LoadPort","GAZ");%>
window.open("loadportbookingdetail.jsp");
}else if(Request=="RD"){
<%AtaSession.setAttribute("LoadPort","RD");%>
window.open("loadportbookingdetail.jsp");
}else if(Request=="RAG"){
<%AtaSession.setAttribute("LoadPort","RAG");%>
window.open("loadportbookingdetail.jsp");
}else if(Request=="RFR"){
<%AtaSession.setAttribute("LoadPort","RFR");%>
window.open("loadportbookingdetail.jsp");
}else if(Request=="TNK"){
<%AtaSession.setAttribute("LoadPort","TNK");%>
window.open("loadportbookingdetail.jsp");
}else if(Request=="C_totalEUS"){
<%AtaSession.setAttribute("LoadPort","C_totalEUS");%>
window.open("loadportbookingdetail.jsp");
}
}嗨,上面的代码来自我的项目,我正在使用notepad++来增强这个项目。我现在遇到的麻烦是,当参数赋值是(请求== " DRY ")时,会话应该等于DRY,但结果对我来说等于"C_totalEUS“。有什么办法解决这个问题吗?请指点。谢谢
发布于 2015-06-25 04:07:19
问题是您正在使用带有javascript的jsp抄写器,请不要这样做。因为jsp抄写器是在javascript之前计算的,所以最后一条语句都是以AtaSession.setAttribute("LoadPort","C_totalEUS")的形式执行的。
编辑的
您可以调用另一个servlet或jsp来设置会话属性。
function gotoDetail(Request) {
var script = document.createElement('script');
script.src = "put.jsp?LoadPort=" + Request;
document.getElementsByTagName('head')[0].appendChild(script);
window.open("loadportbookingdetail.jsp");
}put.jsp:
<%session.setAttribute("LoadPort",request.getParameter("LoadPort"));%>如果您可以编辑相同的jsp,即loadportbookingdetail.jsp
function gotoDetail(Request) {
window.open("loadportbookingdetail.jsp?LoadPort=" + Request);
}loadportbookingdetail.jsp:
在页的顶部
<%session.setAttribute("LoadPort",request.getParameter("LoadPort"));%>发布于 2015-06-25 04:04:52
这里有几样东西要检查。1.最后一个--如果没有关闭。2.是否可以使用任何调试eg:console.log()并查看控件在“DRY”条件下的位置。3.用小用例表示“请求”,以达到更好的编码标准
例:
function gotoDetail(request) {
<% HttpSession session = request.getSession(true);%>
console.log('req='+request);
if(request=="DRY") {
console.log('DRY='+request);
<%session.setAttribute("LoadPort","DRY");%>
window.open("loadportbookingdetail.jsp");
}
}如果您想将该值传递给下一个jsp。
JSP1:
<script>
function gotoDetail(req)
{
window.open("loadportbookingdetail.jsp?LoadPort="+req);
}
</script>loadportbookingdetail.jsp:
<%=request.getParameter("LoadPort")%>
<% session.setAttribute("LoadPort",request.getParameter("LoadPort")); %>希望这能有所帮助。
https://stackoverflow.com/questions/31040911
复制相似问题