我在C:\Tomcat\webapps下面建立了一个目录web1
也就是说我自己的jsp文件起始页面在C:\Tomcat\webapps\web1\index.jsp我想请问这样的目录我该如何调用bean在网上找了一个例子
他的jsp页面上这样写
<jsp:useBean id="bean0" scope="application" class="count.counter" />
我想请问class="count.counter"这里具体是什么意思哪位在请帮忙给仔细说说
也就是说我自己的jsp文件起始页面在C:\Tomcat\webapps\web1\index.jsp我想请问这样的目录我该如何调用bean在网上找了一个例子
他的jsp页面上这样写
<jsp:useBean id="bean0" scope="application" class="count.counter" />
我想请问class="count.counter"这里具体是什么意思哪位在请帮忙给仔细说说
class属性是指定路径的,你应该刚接触学习JSP吧,看看相关教程和文档 JSP中的标签库以及使用方法
id 给将要应用bean的变量一个名字,如果发现有相同id和scope的bean对象,则应用此对象而不会产生一个新的例示。
class 指明了bean的整个包名。
scope 表 明了此bean的作用范围,共有四个值:page, request, session, 和 application,缺省的是page属性,表明此bean只能应用于当前页(保存在当前页的PageContext 中);request属性表明此bean只能应用于当前的用户请求中(保存在ServletRequest对象中);session属性表明此bean能 应用于当前HttpSession生命周期内的所有页面;application属性值则表明此bean能应用于共享ServletContext的所有 页面。需要注意的是,当没有具有相同的id和scope对象时,一个jsp:useBean 实体只能作用于一个新的例示中,反之,则作用于以前的对象,这时,在jsp:useBean标签之间的任何jsp:setParameter和其它实体都 将被忽略。
type 说明将要索引对象的变量类型,它必须与类名及父类名相匹配。记住,这个变量的名字是由id属性值代替的。
beanName 给定此bean的名字,可以将其提供给bean的例示方法,只提供beanName和type而忽略class属性的情况是允许的。
等于
count.counter bean0=new count.counter();
不过我现在最想知道的是我自己编译的class文件对应我的那个目录到底应该放在哪里我才能正常调用
与classes同级的还有一个lib目录
我没有你说的这个目录webapps/Demo(工程根目录)/
也就是说我自己的jsp文件起始页面在C:\Tomcat\webapps\web1\index.jsp 这是我自己的工作的路径
建议楼主先学学JSP的基础吧,不要邯郸学步
这里要抱错呢?
我概括一下吧,我现在的工作路径是C:\Tomcat\webapps\web1\我弄了一个bean路径为C:\Tomcat\webapps\web1\WEB-INF\classes\
我在C:\Tomcat\webapps\web1\index.jsp这里引用这个bean抱错
我的问题是我这个.class文件存放的位置是否正确就这么简单
我按照你的路径来了抱错如下exception org.apache.jasper.JasperException: /counter1.jsp(13,0) The value for the useBean class attribute count.counter is invalid.
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:148)
org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1175)
org.apache.jasper.compiler.Node$UseBean.accept(Node.java:1117)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2166)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2216)
org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2222)
org.apache.jasper.compiler.Node$Root.accept(Node.java:457)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2166)
org.apache.jasper.compiler.Generator.generate(Generator.java:3322)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:199)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:296)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:277)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:265)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:564)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:302)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)我最早也是按照这个路径来的
应该这个路径是对的
C:\Tomcat\webapps\web1\WEB-INF\classes\count\counter.class感谢这位朋友的回答但是刚才的错误信息能不能帮我说一下是什么原因,难道是class有问题吗?但是我javac的时候没有抱错啊
C:\Tomcat\webapps\web1\about下面的文件中引用该bean这里该如何写呢?
<jsp:useBean id="bean0" scope="application" class="count.counter" />
要取出javabean的loginName属性
<jsp:getProperty name="user" property="loginName"/>
或者
<%=user.getLoginName()%>
再或者
${user.loginName} //EL表达式
class指定的就是路径名,理解成包名点类名是没有问题的