初学struts遇难题,高分求救 几个tld标签文件放到了web-inf目录下了吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 汗!JSP不熟就搞Struts了?建议先学好JSP 楼上说的是 jsp页面里面 你使用了struts标签<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %><%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>看看你的web-inf目录下面是否有这两个标签文件 总结:问题一:.tld文件在web.xml中配置了吗?问题二:在也面中引用标签了吗? 如:<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>问题三:把.jar包放到classpath或者系统能找到的文件目录下了吗? 汗!JSP不熟就搞Struts了?建议先学好JSP===================================不熟悉就不能搞了,我就是不熟悉就搞的 楼上说的都不对,其实就是缺少了一个jsp-api.jar这个包。这个包在tomcat5.0以后开始出现,主要就是jsp2.0的使用包。同时支持el表达式。你拷贝一个放到tomcat_home\common\lib下就是了。注意你的tomcat版本,一定要5.0以上。 楼上说的很有道理,我把jsp-api.jar放到classpath目录下,果然没有了那个错误,不过出现新的错误:java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory然后我又放入包:commons-logging-api.jar这下错误变成了:exception javax.servlet.ServletException org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:846) org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779) org.apache.jsp.logon_jsp._jspService(logon_jsp.java:111) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236) javax.servlet.http.HttpServlet.service(HttpServlet.java:802)root cause java.lang.NoClassDefFoundError java.lang.Class.forName0(Native Method) java.lang.Class.forName(Class.java:164) org.apache.jsp.logon_jsp.class$(logon_jsp.java:123) org.apache.jsp.logon_jsp._jspx_meth_bean_message_0(logon_jsp.java:123) org.apache.jsp.logon_jsp._jspService(logon_jsp.java:85) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236) javax.servlet.http.HttpServlet.service(HttpServlet.java:802)非常感谢诸位的帮助,谢了! 呵呵,同样,你少了一个commons-logging的包,这个包是apache用来输出日志的,主要提供了对log4j和java自带log等日志包的兼容。拷贝一个放到你的WEB-INF/lib下就是了。 呵呵,不好意思,刚才没仔细看贴。org.apache.jsp.logon_jsp.class$(logon_jsp.java:123)org.apache.jsp.logon_jsp._jspx_meth_bean_message_0(logon_jsp.java:123)org.apache.jsp.logon_jsp._jspService(logon_jsp.java:85)你去看看你编译后的这个文件的123行和85行分别是什么。有可能是你的structs运行包拷贝的不全,为了省事,你把structs所有包都拷贝到WEB-INF/lib下试试,最好还是把错误段贴出来让偶瞧瞧。 感谢楼上的。编译错误的代码是这样的:private boolean _jspx_meth_bean_message_0(PageContext _jspx_page_context) throws Throwable { PageContext pageContext = _jspx_page_context; JspWriter out = _jspx_page_context.getOut(); // bean:message org.apache.struts.taglib.bean.MessageTag _jspx_th_bean_message_0 = (org.apache.struts.taglib.bean.MessageTag) _jspx_tagPool_bean_message_key_nobody.get(org.apache.struts.taglib.bean.MessageTag.class); //第123行 _jspx_th_bean_message_0.setPageContext(_jspx_page_context); _jspx_th_bean_message_0.setParent(null); _jspx_th_bean_message_0.setKey("logon.jsp.title"); int _jspx_eval_bean_message_0 = _jspx_th_bean_message_0.doStartTag(); if (_jspx_th_bean_message_0.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE) return true; _jspx_tagPool_bean_message_key_nobody.reuse(_jspx_th_bean_message_0); return false; }第85行就是调用这个函数的了。这些代码怎么看得懂噢。晕 那应该是解析<bean:message>这个标签的时候出现问题了,你下面做几个检查:1.在web.xml中是否指定了引用这个taglib的设置2.你的structs的包是否齐全(不仅仅是structs.jar这一个包,你把structs的所有包都拷贝过去吧,具体哪些包我就不给你找了,直接拷贝省事一点。)3.检查一下你的tld文件和structs的版本是否兼容(一般不会有此问题,已防万一)如果都检查完了,还是搞不定,给我发消息 在web.xml文件里定义taglib的语句是这样的: <taglib> <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri> <taglib-location>/WEB-INF/struts-bean.tld</taglib-location> </taglib> <taglib> <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri> <taglib-location>/WEB-INF/struts-html.tld</taglib-location> </taglib> <taglib> <taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri> <taglib-location>/WEB-INF/struts-logic.tld</taglib-location> </taglib><bean:message>标签在struts-bean.tld中有定义:<name>message</name><tagclass>org.apache.struts.taglib.bean.MessageTag</tagclass>我刚才又下了一个最新版本的struts,把里面所有的jar文件都放到/lib目录下了,另外把tld文件也更新了一遍。估计第二和第三的问题都不存在。 mxlmwl(飞星) 这么热心,非常的谢谢你。 有些包要自己手工下的...commons组件包 刚学注解,遇到问题,求解释 Apache实现动态二级域名的方法,求解决 怎么样在JSP做的网页里添加图片? 使用ResultSet的ResultSetMetaData获取表的元信息时一个怪异的问题 java串口通信 论坛中的textarea输入文章,并且换行输入新的内容,然后提交....怎么显示同样换行了的东西? jb中的问题 请问能不能将用户权限管理的实现功能的模块化 struts配置出现的问题 使用java.nio的问题:怎样将ByteBuffer转换为Object? hibernate的问题,连接数据库出错!帮忙看一下,谢谢! 请问tomcat为什么总是死机啊
建议先学好JSP
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>看看你的web-inf目录下面是否有这两个标签文件
问题一:.tld文件在web.xml中配置了吗?
问题二:在也面中引用标签了吗?
如:<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
问题三:把.jar包放到classpath或者系统能找到的文件目录下了吗?
建议先学好JSP
===================================
不熟悉就不能搞了,我就是不熟悉就搞的
java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory然后我又放入包:commons-logging-api.jar这下错误变成了:
exception javax.servlet.ServletException
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:846)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779)
org.apache.jsp.logon_jsp._jspService(logon_jsp.java:111)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause java.lang.NoClassDefFoundError
java.lang.Class.forName0(Native Method)
java.lang.Class.forName(Class.java:164)
org.apache.jsp.logon_jsp.class$(logon_jsp.java:123)
org.apache.jsp.logon_jsp._jspx_meth_bean_message_0(logon_jsp.java:123)
org.apache.jsp.logon_jsp._jspService(logon_jsp.java:85)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)非常感谢诸位的帮助,谢了!
org.apache.jsp.logon_jsp.class$(logon_jsp.java:123)
org.apache.jsp.logon_jsp._jspx_meth_bean_message_0(logon_jsp.java:123)
org.apache.jsp.logon_jsp._jspService(logon_jsp.java:85)
你去看看你编译后的这个文件的123行和85行分别是什么。有可能是你的structs运行包拷贝的不全,为了省事,你把structs所有包都拷贝到WEB-INF/lib下试试,最好还是把错误段贴出来让偶瞧瞧。
private boolean _jspx_meth_bean_message_0(PageContext _jspx_page_context)
throws Throwable {
PageContext pageContext = _jspx_page_context;
JspWriter out = _jspx_page_context.getOut();
// bean:message
org.apache.struts.taglib.bean.MessageTag _jspx_th_bean_message_0 = (org.apache.struts.taglib.bean.MessageTag) _jspx_tagPool_bean_message_key_nobody.get(org.apache.struts.taglib.bean.MessageTag.class); //第123行
_jspx_th_bean_message_0.setPageContext(_jspx_page_context);
_jspx_th_bean_message_0.setParent(null);
_jspx_th_bean_message_0.setKey("logon.jsp.title");
int _jspx_eval_bean_message_0 = _jspx_th_bean_message_0.doStartTag();
if (_jspx_th_bean_message_0.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE)
return true;
_jspx_tagPool_bean_message_key_nobody.reuse(_jspx_th_bean_message_0);
return false;
}第85行就是调用这个函数的了。这些代码怎么看得懂噢。晕
1.在web.xml中是否指定了引用这个taglib的设置
2.你的structs的包是否齐全(不仅仅是structs.jar这一个包,你把structs的所有包都拷贝过去吧,具体哪些包我就不给你找了,直接拷贝省事一点。)
3.检查一下你的tld文件和structs的版本是否兼容(一般不会有此问题,已防万一)如果都检查完了,还是搞不定,给我发消息
<taglib>
<taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
</taglib>
<bean:message>标签在struts-bean.tld中有定义:
<name>message</name>
<tagclass>org.apache.struts.taglib.bean.MessageTag</tagclass>
我刚才又下了一个最新版本的struts,把里面所有的jar文件都放到/lib目录下了,另外把tld文件也更新了一遍。估计第二和第三的问题都不存在。
mxlmwl(飞星) 这么热心,非常的谢谢你。