【问题标题】:Loading a new JSP Page based on user selection from select list根据选择列表中的用户选择加载新的 JSP 页面
【发布时间】:2013-03-08 14:42:45
【问题描述】:

提前感谢您的帮助,希望这里只是一个简短的问题。

我希望根据用户从选择列表中所做的选择链接到另一个页面。

例如,如果用户应该从列表中选择“Injection”,他会在点击后立即进入“Injection”JSP 页面。在 JSP 中是否有任何等效于 .getSelectedIndex 的 jsp?刚开始,所以不太了解。

<%@page contentType="text/html" pageEncoding="UTF-8"%>

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

    <%@include file ="headerJSP.jsp" %>

    <center>
    Please select an OWASP topic:
    <select id="OWASPTopicList">
        <option value="" selected>Choose a topic</option>
        <option value="injectionJSP.jsp">Injection</option>
        <option value="https://www.google.ie/">Cross-Site Scripting (XSS)</option>
        <option value="TopicThree">Broken Authentication and Session Management</option>
        <option value="TopicFour">Insecure Direct Object References</option>
        <option value="TopicFive">Cross Site Request Forgery (CSRF)</option>
        <option value="TopicSix">Security Misconfiguration</option>
        <option value="TopicSeven">Insecure Cryptographic Storage</option>
        <option value="TopicEight">Failure to Restrict URL Access</option>
        <option value="TopicNine">Insufficient Transport Layer Protection</option>
        <option value="TopicTen">Unvalidated Redirects and Forwards</option>
    </select>
    </center>

    <script>
        $(function(){
        // bind change event to select
        $('#OWASPTopicList').bind('change', function () {
        var url = $(this).val(); // get selected value
        if (url) // require a URL
              { 
              window.location = url; // redirect
              }
        return false;
         });
       });
   </script>

    <%@ include file="footerJSP.jsp" %>

编辑:感谢您的帮助,使用了建议的代码,但它不起作用。编辑了我的代码以反映其当前状态,有什么想法有什么问题吗?页面编译并运行良好,但选择“注入”或“跨站点脚本(XSS)”并没有按预期重定向(这是我的两个测试选项,主要目标是所有选项都重定向到其他 jsp 页面)。

编辑 2:完美的 Hadrik,现在正在工作,非常感谢:D

【问题讨论】:

  • 我很确定您需要 javascript 来将该行为添加到选择选项事件中。
  • 为什么不想提交表单,然后进行转发/重定向?

标签: java jsp servlets


【解决方案1】:
<script>
    $(function(){
      // bind change event to select
      $('#dynamic_select').bind('change', function () {
          var url = $(this).val(); // get selected value
          if (url) { // require a URL
              window.location = url; // redirect
          }
          return false;
      });
    });
</script>

【讨论】:

    【解决方案2】:

    您需要在您的代码中包含js for jQuery。在这里,我的webapps 下的js 目录下有jquery.min.js。所以,它是这样的

    <script type="text/javascript" src="js/jquery.min.js"></script>
    

    然后将selectid绑定到onchange事件使用

    <script type="text/javascript">
            $(function(){
               $('#OWASPTopicList').bind('change', function () {
                 var url = $(this).val(); // get selected value
                 alert(url); // This will help to check whether JS is getting executed.
                 if (url) { // require a URL
                    window.location = url; // redirect
                 }
                 return false;
               });
           });
    </script>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-09
      • 1970-01-01
      • 1970-01-01
      • 2011-10-18
      • 1970-01-01
      • 2016-12-05
      • 2011-05-04
      • 1970-01-01
      相关资源
      最近更新 更多