站内搜索: 请输入搜索关键词

当前页面: 开发资料首页Eclipse 专题MyEclipse5.0开发struts的问题

MyEclipse5.0开发struts的问题

摘要: MyEclipse5.0开发struts的问题


按照MyEclipse帮助中Struts的例子,运行成功。

但是这里关于标签有很多不理解。
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%>
示例给的是这种写法,我在网上看到的许多示例都是/WEB-INF/tags-html这种写法。

首先,我想改成后一种写法,在web.xml添加标签的时候,直接就是在eclipse提示了一个红叉,鼠标放上去一看,cvc-complex-type.2.4.a什么的一大堆。理解不了。改MyEclipse4.1试也是一样的。我想知道为什么不能加

另外,我想知道第一种写法,程序真的去那个url找标签定义吗?还是只是一个表示的写法而已!那到底应该用哪种写法?


两种写法都可以,第一种的话,可以让MyEclipse按上面的网址,去找出taglib的语法规范,进行验证,如果错了就可以马上在编辑器上显示出来相关的出错信息,其实出错信息都是http://jakarta.apache.org/struts/tags-html提供的。如果你用第二种,你每次与struts标签的时候,由于Myeclipse找不到相关的验证标准,就会按J2EE的标准JSP语法规范来验较,由于struts只是一个开源框架,而不是J2EE规范,所以就报错了。第二种写法,是当站点载入容器(Tomcat等)的时候,直接告诉Tomcat载入自定义标签的文件,于是tomcat就知道该站点下JSP页面上的struts标签是按怎样的规范处理的。其实第二种写法是高效许多的,因为程序读的是本地的文件,而且是当站点载入时只读一次。但我已经两年没用struts了,不知jsp页面不写那一句会不会报错,总之原理告诉你了,你自己试试吧。



我一般按第一种写


刚找到了我认为对uri写法正确的解释!《jsp设计》第三版中查到的!
书中讲了关于自定义标记库的用法,我针对我的问题总结一下!

引用自定义标记库,就要把相应的定义文件,和.tld文件放到WEB-INF下,具体大家都知道!
在jsp文件中要用
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%>这种代码进行说明!

其中prefix属性,是jsp文件中用的标签头,
uri属性,其实就是要跟相应的.tld文件的uri部分对应的,这里写的像一个网址,其实跟我们都知道的起java包的包名的目的是一样的,只是为了做到唯一,程序根本不会试图去访问这个网址!

第二种写法,其实是老的写法,jsp1.2以后的规范,采用的是第一种写法,用第二种写法是为了向下兼容!!!!

不知道我解释的明不明白,或者有什么错误!

另外MyEclipse5.0里,在web.xml里写报错,我还是不明白!不知道是不是我自己的问题



路过,友情up...


UP


web.xml的DTD版本不同造成的,改成下面的
<?xml version="1.0" encoding="UTF-8"?>
web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">




版本问题也是我一直想问的问题!谁能给个较详细的解释!比如楼上的就很让我迷惑!为什么要改成2.3???


标记


难道大家做东西都只是抄抄而已吗?怎么没人解释一下?


MyEclispe自动导入Struts包后
使用标记库

页面
<%@ page uri="WEB-INF"/struts-html.tld prefix="html">
....


当然了 还要在应用程序部署文件web.xml中注册对应的标签库

/WEB-INF/struts-html.tld
/WEB-INF/struts-html.tld
.....





zhangj0571(笨鸟飞飞)
我现在想知道的是为什么要改版本号,各版本到底有什么区别?


唉,基本上没能得到我想要的答案!
terry_yip
按我查到的资料,你给的所谓原理基本上是错误的!


↑返回目录
前一篇: 大家好 我是新人 请教一个线程调用问题
后一篇: 各位谁有免费的Myeclipse5.0的下载地址??