0

私はjspファイルを持っています:

... import <%@ page import="classPath.ExampleClass" %>
 <% 
 ExampleClass cl = new ExampleClass(request); 
 %> 

ExampleClass のコード (Java):

private HttpServletRequest req;
public ExampleClass(HttpServletRequest req) {
    this.req = req;
}

したがって、Javaで評価するための完全なリクエストを受け取りたいです。ただし、デプロイ中に次のエラーが表示されます。

Cannot process HttpRequest to Servlet

なんで?

4

3 に答える 3

0

Bean クラスを作成します。

public class ExampleClass{          

      HttpServletRequest request;          

      public HttpServletRequest getRequest() {
        return request;
      }

      public void setRequest(HttpServletRequest request) {
        this.request = request;
      }    

    }

暗黙的requestなオブジェクトを渡すjsp tag

<jsp:useBean id="exampleClass" class="classPath.ExampleClass" scope="request"/>
 <jsp:setProperty name="exampleClass" property="request" value="${pageContext.request}"/>
于 2013-04-30T07:16:20.543 に答える
0

めちゃくちゃにしないでください。暗黙のオブジェクトの使用JSP

JSP暗黙的オブジェクトは、JSPコンテナが各ページで開発者に提供するJavaオブジェクトで、開発者は明示的に宣言しなくても直接呼び出すことができます。JSP Implicit Object は、事前定義変数とも呼ばれます。

書くだけ

 <% 
 ExampleClass cl = new ExampleClass(request); 
 %> 
于 2013-04-30T06:51:52.863 に答える
0

jsp に次のディレクティブを追加します。

<jsp:useBean id="bean" class="classPath.ExampleClass" scope="request">
    <jsp:setProperty name="bean" property="*" />
    <jsp:setProperty name="bean" property="request" value="${pageContext.request}" />
</jsp:useBean>

プロパティ "*" は、リクエストからのすべての属性が Bean (クラス) に設定されることを意味します (たとえば、さまざまな入力フィールドを含むフォーム送信)。

プロパティ "request" は HttpServletRequest を最後のパラメーターとして設定するため、このメソッドをインジケーターとして使用してロジックを開始できます。

クラスは次のようになります。

public class ExampleClass {          

    private HttpServletRequest request;
    private String fieldValue;

    public void doLogic() {
        // do your controller logic here
    }

    public HttpServletRequest getRequest() {
        return request;
    }

    public String getFieldValue() {
        return fieldValue;
    }   

    public void setRequest(HttpServletRequest request) {
        this.request = request;
        doLogic();
    }

    public void setFieldValue(String fieldValue) {
        this.fieldValue = fieldValue;
    }   

}

このプロパティfieldValueは、追加できるカスタム フィールドであり、上記のようにフォーム送信によって設定できることに注意してください。

<form method="post">
    <input name="feildValue" type="text" value="${bean.fieldValue}"/>
    <input name="btnSubmit" type="submit" value="Submit"/>
</form>
于 2013-04-30T07:22:29.677 に答える