首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法执行if-else条件,则会话值重叠。

无法执行if-else条件,则会话值重叠。
EN

Stack Overflow用户
提问于 2015-06-25 03:52:20
回答 2查看 260关注 0票数 0
代码语言:javascript
复制
<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“。有什么办法解决这个问题吗?请指点。谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-25 04:07:19

问题是您正在使用带有javascript的jsp抄写器,请不要这样做。因为jsp抄写器是在javascript之前计算的,所以最后一条语句都是以AtaSession.setAttribute("LoadPort","C_totalEUS")的形式执行的。

编辑的

您可以调用另一个servlet或jsp来设置会话属性。

代码语言:javascript
复制
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:

代码语言:javascript
复制
<%session.setAttribute("LoadPort",request.getParameter("LoadPort"));%>

如果您可以编辑相同的jsp,即loadportbookingdetail.jsp

代码语言:javascript
复制
function gotoDetail(Request) {
    window.open("loadportbookingdetail.jsp?LoadPort=" + Request);
}

loadportbookingdetail.jsp:

在页的顶部

代码语言:javascript
复制
<%session.setAttribute("LoadPort",request.getParameter("LoadPort"));%>
票数 1
EN

Stack Overflow用户

发布于 2015-06-25 04:04:52

这里有几样东西要检查。1.最后一个--如果没有关闭。2.是否可以使用任何调试eg:console.log()并查看控件在“DRY”条件下的位置。3.用小用例表示“请求”,以达到更好的编码标准

例:

代码语言:javascript
复制
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:

代码语言:javascript
复制
   <script>

        function gotoDetail(req)
        {
            window.open("loadportbookingdetail.jsp?LoadPort="+req);
        }
    </script>

loadportbookingdetail.jsp:

代码语言:javascript
复制
<%=request.getParameter("LoadPort")%>
<% session.setAttribute("LoadPort",request.getParameter("LoadPort")); %>

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31040911

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档