我收到这个错误:
javax.servlet.ServletException: bean not found within scope
Run Code Online (Sandbox Code Playgroud)
在顶部的页面上.
<jsp:useBean id="bean" type="com.example.Bean" scope="request" />
Run Code Online (Sandbox Code Playgroud)
该类存在于类路径中,它今天早上起作用,而且我没有得到范围内未找到的内容.
这是怎么造成的,我该如何解决?
出于个人原因,我需要在 jsp 上回忆一些事情:) 我有一个简单的登录页面:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Login</title>
</heaf>
<body>
<form action="LoginServlet.do" method="POST">
<p>
First name: <input type="text" size="20" name="first">
</p>
<p>
Last name: <input type="text" size="20" name="last">
</p>
<input type="submit" value="send">
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
豆类:
package web.model;
public class User {
private String firstName;
private String lastName;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName …Run Code Online (Sandbox Code Playgroud) 我试图通过将参数传递给构造函数来初始化类.我需要范围是"页面".我知道我的构造函数中有一个参数,但是如何使用一个接受参数的参数<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文件中,我有这个声明:
<jsp:useBean scope="request" id="products" class="java.util.ArrayList<sgt.supermarket.entity.Product>"/>
Run Code Online (Sandbox Code Playgroud)
这个声明适用于GlassFish 2.1,但是,当我切换到Tomcat 6.0时,会抛出异常:
useBean类属性java.util.ArrayList的值无效.
是否有任何图书馆错过了Tomcat,使其与Glass Fish 2.1有所不同?
我使用PLAY Framework 2.2.1,我想构建一个查询来搜索数据库中我从输入表单中获得的术语.
这是我到目前为止所得到的,但它不起作用:
...
List<String> terms;
public static Model.Finder<Integer, XYZ> find = new Model.Finder<Integer, XYZ.class>(Integer.class, XYZ.class);
ExpressionList<XYZ> el = XYZ.find.where();
for(String term : terms){
el.add(Expr.ilike("name", term + "%"));
}
List<XYZ> results = XYZ.find.where().add(el.disjunction()).findList();
Run Code Online (Sandbox Code Playgroud)
我不知道如何使用OR向我的查询添加和连接多个表达式.
JSP代码是:
<jsp:useBean id="person" class="org.example.model.PersonModel" scope="session">
</jsp:useBean>
<br> Name : <jsp:getProperty property="name" name="person"/>
<br> Surname : <jsp:getProperty property="surname" name="person"/>
Run Code Online (Sandbox Code Playgroud)
虽然我在request范围内设置了java对象,而不是在sessionController Servlet 中的范围内,我将请求转发给此Servlet.<jsp:useBean>虽然标记中提到的范围是会话,但如何获取请求属性?如果它用于pageContext.findAttribute()获取属性,那么在该<jsp:useBean>标记中使用scope属性有什么用?
我想将CDI SessionScoped bean注入JSP页面.
import javax.enterprise.context.SessionScoped;
import java.io.Serializable;
@SessionScoped
public class UserSessionBean implements Serializable {
private String email = "email";
public UserSessionBean(){}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
Run Code Online (Sandbox Code Playgroud)
当我以这种方式使用bean时,它工作正常,我在JSP页面上看到了初始值.
<jsp:useBean id="userSessionBean" class="package.UserSessionBean"/>
<jsp:getProperty name="userSessionBean" property="email"/>
Run Code Online (Sandbox Code Playgroud)
当我将相同的bean注入到我从API中的另一个servlet调用的服务中时,会出现问题.在这种情况下,我没有在JSP页面获得更新值.看起来我在JSP页面和使用@Inject注释的服务内部获得了不同的bean
任何人都可以建议如何在JSP和从servlet访问的服务层中使用相同的SessionScoped bean?