百度
360搜索
搜狗搜索

struts标签库,使用struts做一个用户登陆项目,但是为什么jsp页面不能辨认html标签,提示unknown tag(html:...)?详细介绍

本文目录一览: 通过怎样一行代码引入Struts2标签库?

可以在JSP页面的头部使用<%@ taglib %>指令引入Struts2标签库,示例代码如下:
<%@ taglib prefix="s" uri="/struts-tags" %>
这行代码将会引入Struts2标签库,其中prefix属性指定标签库的前缀,uri属性指定标签库的路径。

ssh是如何实现三层架构的? 每层分别用什么技术实现?

ssh 现三层架构,和每层使用的技术如下:\x0d\x0a1.Struts应用在表示层,它是基于MVC的WEB应用框架。\x0d\x0aStrutts提供了中央控制器(ActionServlet)和应用控制器(Action)。ActionServlet是Struts框架的核心,采用的是前端控制模式;Action则负责完成对服务的调用,对ActionServlet接受并分发下来请求进行处理。可以重写ActionServlet,也可以直接使用,然后继承Action,使其完成我们要求的功能。有了Struts提供的控制器,再运用JSTL标签、Struts标签库中的标签配以JSP或HTML文件,就是Struts中的视图。另外,用于视图与控制器之间表单数据传输的ActionFormBean,也被归于到了视图中。Struts并没有定义模型层的具体实现。一般情况下,Action中所使用的服务是由业务层提供的。Struts中还有不可缺少的配置文件。该配置文件描述了用户请求路径和Action映射关系的信息。ActionServlet通过解析此配置文件得知需把用户的请求发往哪一个Action。\x0d\x0a2.Hibernate是一种映射的工具,完全着眼于关系数据库的对象——关系映射,管理对象到数据库的映射,提供数据查询和获取数据的方法。在持久层中,不仅可以使用Hibernate进行映射,还可以使用iBATIS进行SQL语句与对象之间的映射,此外,也可以直接使用JDBC对数据库进行操作。至于使用那一种工具实现持久化,可以根据自己的需求视情况而定。而Hibernate映射是否复杂取决于领域对象的关系是否复杂。\x0d\x0a3.Spring贯穿于WEB应用中,它为我们管理对象提供了方便,降低了层与层之间的耦合度,将程序员从繁琐的事务、安全和分布式处理中解放出来,从而把更多的精力放在业务上。如果应用程序才用了Struts+Hibernate的架构,Spring可以帮助整合两者。在创建对象时,可以通过Spring进行注入;对于事务管理,可以通过Spring集成声明式事务管理到到应用程序中等。

如何在jsp页面中使用struts2标签?

1、set标签
${CONTACTID } ${CONTAID } ${CHARACTERISTICCODE } ${ISLCL }


上面在循环标签中使用了s:set标签给ids赋值,用途是将ID中的值用逗号隔开,重新赋值到变量ids中,然后在循环外面引用ids 2、doubleselect标签 假如后台的对象为Map
<string,map
>格式,并且放在request中

另外解决子下拉框换行的问题: .nobr br{ display: none; }
注:最好给form加上name否则子下拉框有可能会显示不出值,原因查看生成的js就明白了。

在jsp页面中使用struts2标签的方法是在jsp页面上引入<%@ taglib prefix="s" uri="/struts-tags" %>的struts2标签库。

拓展:

1、Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。

2、Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts 2可以理解为WebWork的更新产品。虽然从Struts 1到Struts 2有着太大的变化,但是相对于WebWork,Struts 2的变化很小。

3、2000年5月发展至今,Struts1已经成为了一个高度成熟的框架,不管是稳定性还是可靠性都得到了广泛的证明。市场占有率超过20%,拥有丰富的开发人群,几乎已经成为了事实上的工业标准。但是随着时间的流逝,技术的进步,Struts1的局限性也越来越多地暴露出来,并且制约了Struts1的继续发展。
</string,map

struts标签库的错误

registerAction你这个action,在struts-config.xml 配置form-beans 了吗,你的form里面有html:text里面的 password1这个属性吗
//应该用name属性
property有专用的标签
这个标签常用来显示后台数据(需要相应的get和set方法)
你导入的标签库错了,html标签的库文件应该是这样的“< %@ taglib uri="/WEB-INF/struts- html.tld"prefix="html"%>”
你好,标签库正常导入了吗? 还有name属性是必须写的你没有写。

Struts配置讲解Web应用

   Web应用的发布描述文件:
  Web应用发布描述文件可以在应用开著者 发布者和组装者之间传递配置信息 Web容器在启动的时候从该文件中读取配置信息 根据它来装载和配置web应用 文档类型定义DTD对XML文档的格式做了定义 DTD吧XML文档划分为元素 属性 实体每一种XML文档都有独自的DTD文件 可以从网上下载 < WEB APP>元素是web xml的根元素 其他元素必须嵌入在< WEB APP>元素之内 要注意的是子元素也是有顺序的比如必须是首先< SERVLET> 然后< SERVLET MAPPING>最后< TAGLIB>
   为Struts配置Web xml文件:
  首先最重要的一步是配置ActionServlet 这个用 标签的servlet name属性起一个名字叫action 然后用servlet class属性指定ActionServlet的类
  然后用< SERVLET MAPPING>标签的servlet name属性指定action 在用url pattern指定接收范围是* do的请求 不管应用中包含了多少子应用 都只需要配置一个ActionServlet 类来出来应用中的不同的功能 其实者就是不必要的 因为Servlet本身就是多线程的 而且目前Struts只允许配置一个ActionServlet 声明ActionServlet的初始化参数:< SERVLET>的< INIT PARAM>子元素用来配置Servlet的初始化参数 param name设置config参数名 param value设置struts config xml的路径参数值

   Struts配置欢迎使用清单:
  如果客户访问Web的时候值是访问了WEB应用的根目录URL 没有具体的指定文件 Web会自动调用Web的欢迎文件 元素来配置的 通过其中的< WELE FILE>欢迎页面< /WELE FILE>来配置
   Struts配置错误处理:
  尽管Struts框架功能强大的错误处理机制 但是不能保证处理所有的错误或者异常 当错误发生时 如果框架不能处理这种错误 把错误抛弃给Web容器 在默认的情况下web容器会想客户端返回错误信息 如果想避免让客户看到原始的错误信息 可以在Web应用发布描述文件中配置< ERROR PAGE>元素 通过< ERROR CODE> 来定义错误的类型 然后通过< LOCATION>要处理错误的JSP页面来对错误进行处理 还可以用< EXCEPTION TYPE>来设置异常 然后通过< LOCATION>来处理异常的JSP页面来处理异常
   配置Struts标签库:
  这个就和以前学到的JSP自定义标签类似 配置元素为 来配置 这个指定标签库的uri 类似起一个名称 这个是标签库的位置也就是实际所在的路径 通过这样的方法引入一个标签库 然后在前台JSP页面就可以通过自己定义的URI来调用标签
   Struts配置文件:
  struts config xml文件
  首先研讨一下onfig包 在struts应用启动的时候会把Struts配置文件信息读取到内存中 并把它们存放在config包中相关的JavaBean类的实例中 包中的每一个类都和struts配置文件中特定的配置元素对应 ModuleConfig在Struts框架中扮演了十分重要的角色 它是整个config包的核心 在Struts运行时来存放整个应用的配置信息 如果有多个子应用都会有一个ModuleConfig对象 它和Struts文件根元素的< STRUTS CONFIG>对应 根元素中包含< FORM BEAN>< ACTION>< FORWARD>等元素
lishixinzhi/Article/program/Java/ky/201311/28788

struts标签怎么拿取list里的单个数据不用遍历,比如说,只拿 索引是 0,和1的 谢谢高手指点

<%@taglib perfix=‘s’ uri=“struts-tags”%> 首先导入struts标签库
然后



value:就是你要循环的list集合
var=“list” 就是遍历出来的值
本人对Struts的理解还不是很深入,不过觉得在它的标签里如果不用循环处理的话,是取不到某个指定的值的,对于你的这个目标可以使用下面的方法来实现,指定begin和end为同一个值,即可取出一个值来:



这里是struts2中的使用方法,方法将request中的list的编号为1的值取出,将其付给obj,然后不可以对obj进行处理了

struts2 怎么把错误信息输出到标签

下面是我的笔记,复制上来不好看,但是我在笔记软件上整理的很好。
struts2提供了两种校验方式:服务器端校验(更重要)和客户端校验
也分为:validate()校验方法、自定方法的义校验方法、校验框架校验方法三种,其中校验框架校验方法又分为两种:校验器优先校验器和字段优先校验器.(没有业务逻辑的校验)
1、通过validate()校验方法进行校验
我们只写错误的情况,正确的情况我们不做处理。
注意:struts2当输入校验发生错误的时候,struts2会默认转到一个name为input的这样一个

,其实就是当输入错误的时候应该,用户应该尝试着再一次提供输入信息,因此转到input页面。

当发生错误时,struts2给出来各种错误级别的提示:

(1) action级别this.addActionError(anErrorMessage)

addActionError(放的是错误的提示信息),它应该是一个集合,每次都忘这个集合中添加错误信息。

页面使用
标签显示错误信息,指如果存在action的错误信息,就把错误信息显示出来。


标签还有许多的属性,如cssStyle="";定义错误信息的cssStyle,如:cssStyle="color:red";错误信息为红色.

(2) 字段级别this.addFieldError(fieldName, errorMessage)

addFieldError(字段名, 错误提示信息),它应该是一个Map类型,有name和errorMessage两个参数。

页面使用
标签来显示错误信息。

注意:当页面使用的是struts2自己的标签库的时候,它能自动显示field级别的错误信息,是struta2标签自带的功能。

若不需要这样的功能,把theme的值设为simple即可。

(3) ActionSupport类的addActionError方法的实现:首先创建一个ArrayList对象,然后将错误信息添加到该对象中。

(4) 当调用getActionError()方法返回Action级别的错误信息列表时,返回的实际上是集合的一个副本而不是集合本身,因此对集合副本的调用clear()方法清除的依旧是副本中懂得元素而非原集合中的元素,此时原集合中的内容没有受到任何的影响。换句话说,Action级别的错误信息列别对开发者来说是只读的。

(5) FiledError级别的错误信息底层是用LinkHashMap实现的,该Map的key是String类型,value是List

类型,这就表示一个FieldName可以对应多条错误信息,这些错误信息都放置在List

集合当中。所以在页面中一个字段可能有多个错误信息。

(6) 判断是否有Action级别或者Field级别的错误根据hasActionError和hasFieldError两个方法的返回值,他们的返回值为布尔型,有错误返回true,没错误返回false。

(7) clearActionErrors();清除所有的Action错误

clearFieldErrors();清除所有的Filed错误

clearError();相当于上面两个方法的集合

例子:如下图,age为int类型。birthday和graduate是Date类型

为什么action级别中会出现age invoked!,birthday invoked!,graduate invoked!三个错误信息?

答:因为我们输入的都是字符串,因此在action中找不到对应的参数类型为String的setAge,setBirthday,setGraduate方法,因此就不能给这三个成员变量赋值,但是age,birthday,graduate在实例化对象时已经有默认的初始化值0,null,null,这样的值均满足if条件判断。

下面的前三个field错误信息是因为我们输入的字符格式错误,它是发生在类型转换阶段,不是发生在输入校验阶段。

知识点:类型转换的错误信息放置到field中。

2、执行流程

(1)首先进行类型转换

(2)然后再进行输入校验(执行validate方法)。

(3)如果上述过程中出现任何错误,都不会再执行execute或自定义方法。会转向struts.xml中对应action中name为input的

阅读更多 >>>  台式组装机编号怎么查看

标签对应的页面。

当field级别错误和action级别错误都没有任何的错误才会执行execute方法。

3、自定义方法的校验方法

(1) 对于一个自定义的方法来说(如:上面的myExecute()),它的validate()方法在自定义方法之前被调用,即:先进行校验,再执行自定义方法。

(2) 自定义方法的自定义输入校验方式(action中method所指定的自定义方法)

public String myExecute() throws Exception{ return SUCCESS; } 一个自定义方法;

校验方法的一般格式:public void validateMyExecute(){} 方法名为validate开头,再加上方法的名字,且方法名首字母大写。底层通过反射来实现的。我们称validateMyExecute()为myExecute()的输入校验的方法。

(3) 当Action中既有自定义方法的校验方法也有validate方法,则先执行自定义方法的校验方法,然后再执行validate方法,若两个校验方法有action或field级别错误,则都不会执行execute或自定义execute方法。

若把method中自定义方法删掉,则不会执行自定义发的校验方法,而validate方法是会一定会执行的(Action中写了这个方法),因此,validate是用来校验execute方法的。

4、Field级别错误的自定义错误提示

在Action同级目录下建一个以Action名字命名的properties文件,配置文件名的格式:Action名字.properties

如:RegisterAction.properties

配置文件内容写法格式:invalid.fieldvalue.字段名=错误提示信息 如:invalid.fieldvalue.age

其中字段名是Action中的属性名,即当那个属性发生Field错误时所提示的错误信息。

5、Struts2的校验框架(有效的xml文件)

(1) 校验框架xml文件和被校验的action在同一个包下

(2) 校验框架xml文件命名格式:Action名字-validation.xml 如:RegisterAction-validation.xml

(3) 具体来说分为字段优先校验器(field)与校验器优先校验器(validator)

6、字段优先校验器(先有字段再有校验器)

xwork内置校验器在com.opensympony.xwork2.validator.validators目录下的default.xml文件中。

有以下几中校验器分类:

required、requiredstring 、int、long、short、double、date、fieldexpression、expression、email

url、visitor、conversion、stringlength、regex、conditionalvisitor

(5) Struts2的校验框架xml文件标签及标签属性分析


校验器类型,name属性值为Action中待校验的属性值(成员变量)

如:


校验规则或校验器,在

里面可以有多个

如:
指username只能为字符串,不能为空

若:type="required" 指除了string之外的其他类型

type="stringlength" 指字符串的长度

type="int" 指待检验的值必须为int类型

type="date" 指定带检验的值为date类型,且
标签中的字符串值必须写成日期的样 式,因为
标签中我们写的是字符串的日期样式,而在xmwork内部校验器的对应属 性是Date类型,所以这里用到了类型转换器。

username
当发生错误的时候的提示信息标签

如:

username can't be blank!

标签属性key 如:

注意:这个key变量的值是在配置文件中的,配置文件和Action在同一包下

书写格式:英文 package_en_US.properties 中文 package_zh_CN.properties

package.properties为默认的资源文件,当所要找的资源文件不存在时找默认的资源文件。

配置文件中的key和message中的key名字必须一样,若不一样,则会把message中的key值作为错误提示信息显 示在页面。

*. 通过修改浏览器显示语言的首选项来切换浏览器使用什么语言显示页面内容。

子标签,可选.

param中的属性名都必须和源代码对应的类中的属性名一致,这样才能正确赋值。

如:
4设置字符串最大长度


6设置字符串最小长度


false 设置是否去掉字符串两边的空格

拿minLength和maxLength的引用:

${minLength}取得是minLength的值,${maxLength}${minLength}取得是maxLength的值

如:

username should be between ${minLength} and ${maxLength}!

7、校验器优先校验器(先有校验器再有字段)

-->这是一个校验器


username -->定义待校验的字段名,这里的name值是固定为fieldName

校验器优先校验器和字段优先校验器可以混合使用.

struts2输入校验总结:struts2框架校验执行的先后顺序:

1) 首先进行类型转换(只有类型转换好后才能进行校验)

2) 首先执行校验框架的校验方法(xml文件)

3) 执行自定义方法的校验方法

4) 执行validate()校验方法

当validate()方法执行完以后,struts2框架才会检查Field级别或者Action级别有没有任何的错误消息,当出现任何一条错误消息的时候,struts2都不会执行自定义的execute方法和execute()方法,进而转向struts.xml中

标签中name为input所对应的页面。

推荐使用validate()校验方法。

使用struts做一个用户登陆项目,但是为什么jsp页面不能辨认html标签,提示unknown tag(html:...)?

不能用就不要用了啊
换别的
用其他的jsp标签 同样可以实现

username

password

<%@ taglib prefix="标签别名" uri="标签库定义路径" %>

记住如果你要使用
<html:开头的话,struts的标签库prefix也一定要是html
<%@ taglib prefix="html" uri="/WEB-INF/struts-html.tld" %>
普通java web工程可不可以单独使用struts2标签

不需要改web.xml。java web单独使用struts2标签没意义,无法绑定struts2的action,所以一定用也没有。。所以单独用struts2的标签库是没有意义。
如果真要用,就把struts2的jar包导入build path里应该就可以了

Cannot find the tag library descriptor for http:jakarta.apache.orgstrutstags-tiles这个错误是?

1. Struts标签引用
1.1异常描述
The absolute uri: cannot be resolved in either web.xml or the jar files deployed with this application
1.2相关代码
hello.jsp
Java代码
%@ page language="java" pageEncoding="UTF-8"%
%@ taglib uri="" prefix="bean"%
%@ taglib uri="" prefix="html"%
%@ taglib uri="" prefix="logic"%
%@ taglib uri="" prefix="tiles"%
%@ page language="java" pageEncoding="UTF-8"%
%@ taglib uri="" prefix="bean"%
%@ taglib uri="" prefix="html"%
%@ taglib uri="" prefix="logic"%
%@ taglib uri="" prefix="tiles"%
1.3 问题分析
在web.xml或这个工程的所有jar文件中,不能找到绝对uri路径
在jsp页面中使用Jsp自定义标签(包括开源框架的标签库,如jstl,struts,jsf)必须保证标签处理程序(一般被打包成jar),标签描述文件(tld)被正确加载到工程中,并且确保jsp页面中的标签引用指令的uri与tld文件中的uri保持一致
框架或组件一般都会将标签处理程序,标签描述文件一起压缩成一个.jar文件
1.4 解决步骤:
1.4.1 确保struts.jar及相关jar包含在工程WEB-INF/lib目录下;
一般通过这个步骤可以解决大多数这类问题,如果还有同样问题,继续下一个步骤
1.4.2 使用压缩工具解开struts.jar,打开META-INF/tlds下的struts-bean.tld文件
查看uri节点的值是否与jsp页面中的一致;如果不一致,将jsp页面中的uri修改成tld文件中uri节点的值
1.5 总结:
出现以上异常一般有如下原因:
1. struts相关jar包没有发布到WEB-INF/lib目录下
2. 版本问题,在工程中加入1.2/1.1的jar,在jsp页面中却使用1.1/1.2的uri.
本示例就是在工程中加入了1.1的struts,但在jsp页面中使用1.2的uri
Struts1.1 uri
Struts1.2 uri
1.6 相关技巧:
1.6.1 查看struts版本
Struts.jar中查看META-INF\MANIFEST.MF
Java代码
Extension-Name: Struts Framework
Specification-Title: Struts Framework
Specification-Vendor: The Apache Software Foundation
Specification-Version: 1.2.7
如果不是你自己定义的话,看看是不是少了jstl.jar,standard.jar,
jstl.jar和standard.jar
放到lib目录中。
这个错误是struts相关jar包没有发布到WEB-INF/lib目录下,解决方法如下:
1、首先切换到Project列表模式,依次点击左侧三角形展开:app->libs,右键点击jar包。
2、然后选择Add as library。
3、在打开的对话框中,直接点击OK就行了。
4、成功后会在jar包左侧显示三角形符合,工程文件就可以正常引用该jar包中的过程和方法了。
5、最后可以点击三角形图标,展开查看jar包中的文件。

阅读更多 >>>  微博有个什么可以聊天(微博上有什么可以聊天的社交平台?)

</html:开头的话,struts的标签库prefix也一定要是html

网站数据信息

"struts标签库,使用struts做一个用户登陆项目,但是为什么jsp页面不能辨认html标签,提示unknown tag(html:...)?"浏览人数已经达到24次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:struts标签库,使用struts做一个用户登陆项目,但是为什么jsp页面不能辨认html标签,提示unknown tag(html:...)?的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!