0

からという名前の JSP に2 つの値 (intMethodおよびSpotDays)を渡そうとしています。 SourceServletCcySorting.jsp

メソッドを使用しsetRequestAttribute()てサーブレット側で値を設定しgetRequestAttribute()、JSP 側で値を受け取ります。しかし、JSP で null 値を受け取ります。私のコードは以下です。それを見て、考えられる理由を提案してください。私は多くのことを試みましたが、無駄でした。

また、JSP とサーブレットのフォルダー構造も提供しています。

私のフォルダ構造:

  • JSP パス:application.war\CcySorting.jsp
  • サーブレット パス:application.war\WEB-INF\classes\SampleServlet.class

の私のエントリWeb.xml:

<servlet>
  <servlet-name>SampleServlet</servlet-name>
  <servlet-class>SampleServlet</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>SampleServlet</servlet-name>
  <url-pattern>/SampleServlet</url-pattern>
</servlet-mapping>

私の JSP ファイル:

  • CcySorting.jsp

    function searchData(brn,ccy)
    {
        var frmObj  =getUserFormObj('window','div0','form0');
        window.open("/SampleServlet?BrnName="+brn+"&Currency="+ccy);    
        var intMethod= <%= request.getAttribute("intMethod1") %>;
        var spotDay = <%= request.getAttribute("SpotDays1") %>;
        alert("data from servlet"+intMethod+"and spot"+spotDay1);
    }
    
  • SampleServlet.java

    public class SampleServlet extends HttpServlet{     
    
        public void service(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException{
    
            // Some code to fetch the data from database and store in two variable intm and spot
            int int=2
            int spot=3              
            request.setAttribute("intMethod1",int);
            request.setAttribute("SpotDays1", spot);
            RequestDispatcher rd=request.getRequestDispatcher("/CcySorting.jsp");
            rd.forward( request, response ) ;
        }
    }
    
4

2 に答える 2

0

うーん..データの取得以外はすべて正しいようです:

jspレシーバーを次のように変更します。

var intMethod= '<%= request.getAttribute("intMethod1") %>';
var spotDay = '<%= request.getAttribute("SpotDays1") %>';
于 2013-02-14T17:23:59.510 に答える