我试图通过将参数传递给构造函数来初始化类.我需要范围是"页面".我知道我的构造函数中有一个参数,但是如何使用一个接受参数的参数<jsp:useBean>,并且可以从JSP页面调用?
public class A extends B {
A(ServletRequest req) {
super(req);
}
Run Code Online (Sandbox Code Playgroud)
如果没有arg构造函数,我们可以使用< jsp:useBean id="someId" class="mypackage.A" scope="page" />tag.但是在useBean JSP标记中,您不能调用任何构造函数.
有没有办法用构造函数初始化类?
没有.
使用<jsp:setProperty>,
<jsp:useBean id="someId" class="mypackage.A" scope="page">
<jsp:setProperty name="someId" property="request" value="${pageContext.request}" />
</jsp:useBean>
Run Code Online (Sandbox Code Playgroud)
或使用普通的servlet:
request.setAttribute("someId", new A(request));
Run Code Online (Sandbox Code Playgroud)
令人惊讶的是,您[servlets]在问题上进行了标记,而这通常不会与之一起使用,<jsp:useBean>因为这两种管理bean的方法是冲突的(一种是MVC级别1,另一种是MVC级别2).有关详细信息,另请参阅我们的servlet Wiki页面.
尽管如此,具有HttpServletRequest类型的bean属性是可疑的.毫无疑问,有更好的方法来实现具体的功能要求,而您错误地认为这一切都是正确的解决方案.
| 归档时间: |
|
| 查看次数: |
3350 次 |
| 最近记录: |