<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 ++来增强这个项目。我现在遇到的麻烦是当参数assign是(request ==“DRY”)时,会话应该等于DRY,但是对我的结果等于“C_totalEUS”。 是否有任何方法可以解决这个问题?请指导。感谢
答案 0 :(得分:1)
问题是你正在使用jsp scriplets和javascript,请不要这样做。由于jsp scriplet在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"));%>
答案 1 :(得分:0)
这里要检查的东西很少。 1.最后的其他 - 如果没有关闭。 2.你可以使用任何调试,例如:console.log(),看看你的控制在哪里进行干燥&#39;干条件。 3.使用小案例“请求”#39;只是为了更好的编码标准
例如:
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")); %>
希望这有帮助。