-1

このフォーラムで検索しましたが、適切な解決策がありません。誤ってこれが重複している場合は、申し訳ありません。

問題が発生しています... index.htmlのこのコードのように、サーブレットを使用してHTMLの1つから値を設定しています

<FORM METHOD="POST" ACTION="user">
What's your name? <INPUT TYPE="TEXT" NAME="username" SIZE=20>`

サーブレットのコード

package test;
  ......
UserBean ub = new UserBean();
String name = request.getParameter("username");
ub.setFirstName(name);
request.setAttribute("user",ub);
RequestDispatcher rd=request.getRequestDispatcher("/getJsp.jsp");
rd.forward(request,response);

サーブレットと Bean の両方が test というパッケージに配置されます。

UserBean のコード:

private String firstName;

public String getFirstName() {
    return firstName;
}

public void setFirstName(String firstName) {
    this.firstName = firstName;
    System.out.println(firstName);
}

Bean から、サーバー コンソールに名前の適切な値を出力できます。サーブレットから値を設定した後、getJsp.jsp という JSP から Bean 値にアクセスしようとしています。

getJsp.jsp

<table>
   <jsp:useBean id="user" type="test.UserBean" class="test.UserBean" scope="request" >   
    <tr>
       <td>  Id : </td>
       <td> <jsp:getProperty name="user" property="firstName"/></td>
   </tr>
   </jsp:useBean>
</table>

JSP から Bean プロパティにアクセスすると、次のエラーが発生します。

org.apache.jasper.JasperException: /getJsp.jsp (行:10、列:1) useBean クラスの属性 UserBean の値が無効です。

このエラーのコードの問題を理解できません。助けてください。

ありがとうございました。

4

1 に答える 1