给出部分代码,jsp中出现unknown tag(html:text),unknown tag(html:error)等标签警告

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了给出部分代码,jsp中出现unknown tag(html:text),unknown tag(html:error)等标签警告相关的知识,希望对你有一定的参考价值。

JSP:
<%@ page language="java" pageEncoding="UTF-8" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%>

<html>
<head>
<title>Welcome to Login</title>
</head>
<body>
<form action="/Login">
userName:<html:text name="userName" />
<html:errors property="userName" /><br />
passWord:<html:password property="userPass" />
<html:errors property="userPass" /><br />

<html:submit property="Submit">
<bean:message key="jsp.user.login.loginbut" /></html:submit>
<html:reset property="reset">
<bean:message key="jsp.user.login.rebut" /></html:reset>
</html:form>
</body>
</html>

struts-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config
PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
"http://struts.apache.org/dtds/struts-config_1_2.dtd">

<struts-config>
<data-sources />
<form-beans>
<form-bean name="loginForm" type="com.wrox.login.LoginForm" />
</form-beans>
<global-exceptions />
<global-forwards />
<action-mappings>
<action attribute="loginForm"
input="/Login.jsp"
name="loginForm"
path="/Login"
scope="request"
type="com.wrox.action.LoginAction">
<forward name="failure" path="/Login.jsp" />
<forward name="success" path="/index.jsp" />
</action>
</action-mappings>
<message-resources parameter="com.wrox.ApplicationResources" />
</struts-config>

web.xml部分

<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/src/com/wrox/login/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>3</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>3</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>Login.jsp</welcome-file>
</welcome-file-list>

<jsp-config>
<taglib>
<taglib-uri>/struts-bean.tld</taglib-uri>
<taglib-location>/struts-bean.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/struts-html.tld</taglib-uri>
<taglib-location>/struts-html.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/struts-logic.tld</taglib-uri>
<taglib-location>/struts-logic.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/struts-tiles.tld</taglib-uri>
<taglib-location>/struts-tiles.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/struts-nested.tld</taglib-uri>
<taglib-location>/struts-nested.tld</taglib-location>
</taglib>
</jsp-config>
来访者麻烦提出错误地方,并给出解决方案,谢谢~!

参考技术A 没有找到tag文件,建议楼主把加载标签的语句改为
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>

将web.xml中的jsp-config删除。

PS:<jsp-config><taglib>..<taglib>/</jsp-config>是tomcat 5以上(j2ee2.4)的版本配置的方式 .本回答被提问者采纳
参考技术B 标签引入的时候不要用
<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%>

用你在web.xml里配置的uri也就是
<%@ taglib uri="/struts-bean.tld" prefix="bean"%>
<%@ taglib uri="/struts-html.tld" prefix="html"%>
试试
参考技术C 你的jsp页面没有包含struts的页面标记.
要使用struts的标签应该在页面中加如
<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%>等语句,一般就这两个.
参考技术D formbean你没写或<html:text ><html:error>不在<html:form>中 第5个回答  2009-07-20 有2处错误 你看看改了是不是还出错
1: <form action="/Login">
应该是
<html:form action="/Login">

2: <html:text name="userName" />
应该是
<html:textproperty="userName" />

JSP学习 —— 开篇:JSP,servlet容器,Tomcat,servlet容器之间的关系

 JSP(JAVA SERVER PAGE)的缩写,其本身就是servlet的简化,是一种动态网页标准,其特点是在HTML代码中嵌入JAVA代码,JSP标签或用户标签来生成网页。至于它为什么会出现,主要原因在于早期的servlet技术在编写代码时经常通篇性的写一大堆HTML标签,静态文本及文本格式等表现逻辑,其开发效率非常之低下;为了解决这种情况,便随之出现了JSP,其静态部分(包括表现逻辑,如图片,文字等等)全用HTML语言来编写,只有需要动态生成的逻辑才由嵌入的JAVA代码来实现。

    说到最后,JSP其实还是一种对servlet的简化语言,所有的JSP页面最终都会被servlet容器编译成servlet类(其实就是java类),而至于什么是servlet容器,在此简单说下,仅从字面意思上看,它就是一种存放东西的容器,存放什么东西呢?存放维护和创建servlet相关的逻辑(懂C++的JSP新手注意:千万不要将这里的容器和C++中的VECTOR容器相混淆,这里的容器就是一个简单的存东西的容器)。而servlet的实现逻辑大体如下(5个方法):

 

[java] view plain copy
 
 print?
  1. public void init(ServletConfig config) throws ServletException  
  2. public void service(ServletRequest request, ServletResponse response)   
  3. throws ServletException, java.io.IOException  
  4. public void destroy()  
  5. ServletConfig getServletConfig()  
  6. public java.lang.String getServletInfo()    

 

    最主要的方法就是init,service和destroy,它们是servlet对象的生存周期,当一个页面被编译成servlet类,再进行实例化后,这个页面就开始了真正的生命周期,servlet容器会先加载init方法进行初始化,初始化后才可进行接收和相应客户端的消息,之后容器会再加载service,这部分就是真正相应客户端请求的实现逻辑,它实现客户端的请求响应,然后动态生成HTML页面显示到客户端;而destory方法则是在servlet生命周期即将结束时进行的清理工作。

   而事实上,Tomcat在大多数情况下充当servlet的容器,也就是说:在写完JSP代码后进行第一次执行时,tomcat(servlet容器)先将JSP代码翻译成servlet类(java代码),然后实例化该类,再调用该类的init,service,destory等进行生命周期服务。当客户端再进行第二次访问请求时,此时就没有servlet容器的翻译这一步了,因为之前翻译的java代码会一直保存,以便于后面的访问不再进行翻译,可大大提高访问效率。所以,JSP页面在第一次被访问时,其所花费的时间是最长的。

以上是关于给出部分代码,jsp中出现unknown tag(html:text),unknown tag(html:error)等标签警告的主要内容,如果未能解决你的问题,请参考以下文章

Unknown tag (s:property)的原因

解决容器运行 Go 代码 unknown time zone 的正确姿势

JSP学习 —— 开篇:JSP,servlet容器,Tomcat,servlet容器之间的关系

在JSP页面中 怎样实现点击按钮弹出选择框。能给出代码吗??

执行Python出现LookupError: unknown encoding: cp65001解决办法

jsp动作元素