質問があります..
- サーブレットは (クラス "MyPack.abc" で) いくつかのビジネス ロジックを呼び出し、いくつかの戻り値を取得しました。
- これで、この値がセッション「result」に設定され、sendRedirect("xy.jsp") が呼び出されます。
- の助けを借りてjspでこの値をフェッチしたいが、
<jsp:useBean id="result" class="MyPack.abc" scope="session"></jsp:useBean>
CastException<jsp:useBean>
の例外が表示されている(Java.lang.Stringはクラスにキャストできない)。
コードは次のとおりです。
index.jsp
<html>
<body>
<form action="MyController">
<input type="text" name="name"><br>
<input type="submit" name="b1" value="submit">
</form>
</body>
</html>
サーブレットMyController
import javax.servlet.*;
import java.io.*;
import javax.servlet.http.*;
import myPack.*;
public class MyController extends HttpServlet
{
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
abc d=new abc();
d.setName((String)request.getParameter("name"));
String s=(String) d.getName();
HttpSession session=request.getSession();
session.setAttribute("result",s);
response.sendRedirect("xy.jsp");
}
}
abc
myPack の Bean クラス
package myPack;
public class abc {
public abc() { }
public String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
xy.jsp
<%@page contentType="text/html" pageEncoding="UTF-8" import="myPack.abc" %>
<html>
<body>
<jsp:useBean id="result" class="myPack.abc" scope="session"></jsp:useBean>
<jsp:getProperty property="name" name="r"></jsp:getProperty>
</body>
</html>
しかし、CastException をスローしています (Java.lang.String はクラスにキャストできません)。