struts标签库

国际化配置

配置国际化

1.国际化配置

在struts自带的app中的struts-config.xml中的<message-resources parameter="MessageResources"/>加入到项目中的配置文件中默认为struts-config.xml。

2.国际化文件导入

MessageResources.properties(位于\struts-1.3.10\src\apps\blank\src\main\java\MessageResources.properties ),并将该文件放入项目文件的src下

在jsp文件头部分加入

<%@taglib uri="http://struts.apache.org/tags-bean"prefix="bean" %>

语法

hello标签:  <bean:write name="hello"/>

这样就会显示在request设置的信息

Java

request.setAttribute("hello","cfltaglib");

分类

在struts1.3的版本中,taglib分为: bean htmllogic nested

每种标签的使用和定义说明在相应dtld文件中有相关的说明。tld文件是什么?打开文件可以看见,主要是一些xml配置,记录了该标签.

如:

版本号  <tlib-version>1.3</tlib-version>

jsp版本号  <jsp-version>1.2</jsp-version>

建议前缀使用名,当然也可以不使用它的建议,为了统一标准和开发的便利最好还是和建议的一致或者整个项目开发组保持一致即可。

<short-name>bean</short-name>

uri资源定位文件的地址<uri>http://struts.apache.org/tags-bean</uri>

这个即是用来访问存放在struts服务服务器上的资源地址的,这个地址是tags-bean的资源定位地址。当然和我们平时接触的url不一样。

tld的根目录是taglib,用来定义对应的标签的描述放在子元素的tag元素中,对应的例子和使用说明。

Bean

用来访问javabean中的定义的一些数据,而查找则是利用标签中的name来查找,查找的顺序是则是按照设置的scope里设置的范围来进行查找。如果没有针对该标签设置特定的范围则查找的顺序则是page,request, session, application。另外三中标签也是这样一个原理来进行查找和显示处理数据的。

1.输出文本

<bean:write name="hello"/>

2.格式化日期

<bean:write name="propertyname"format="yyyy-mm-dd" />

3.输出javabean对象属性

<bean:write name="beanname"property="property" />

Name:为javabean对象

property:为javabean中提供了get和set方法的属性。

Logic

执行逻辑判断,这里的逻辑判断仅限于用于数据显示的逻辑判断和后面关于业务的逻辑处理还是有区别的。标签着重的还是数据的显示。

引入<%@taglib uri="http://struts.apache.org/tags-logic"prefix="bean" %>

1.是否为空

<logic:empty name="hello">
当为空时进入这里进行判断
</logic:empty>
<logic:empty name="hello">
当不为空是则进入这里进行判断
</logic:empty>

类似的还有logic:present

2.迭代器

<logic:iterate name="listname">
</logic:iterate>

其实显示大都一致,无非是在后台对相应的变量在javabean内配置相应的数据即可。

Html

主要是用来配置前端表单显示的标签库,使用起来很是方便。

如:<html:button />则会构造一个按钮,有点类似在.net中的asp空间,<asp:button/>让我有点恍如昨天还在.net中的赶脚。

更多:http://www.360doc.com/content/13/1227/16/1007797_340571617.shtml

EL表达式

在struts1.x中还配用了EL表达式来进行辅助工作,类似脚本的表达结构,也是直接在page、request、session、application中查找数据,但是不同的是直接返回的是在javabean中设置的对象类型。设置的是何种数据类型就返回什么样的数据类型。当然也是可以直接访问在javabean的对象的属性数据的。

语法:

${ name} or ${javabean.property}

使用起来相对简单,用户不用考虑数据的类型直接使用。而后struts2因为安全问题,不能嵌套使用EL表达式了,但是在html标签中还是可以使用。struts使用的是OGNI表达式,一种lambda的表达方式,但是也能够兼容普通的写法。后面的文章会解释使用。

也就是<s:url id="selectData1"value="${pageContext.request.contextPath}这样是不可以的,而<span>${name}</span>还是可以使用的。另外在页面也可以启用表达式,----<%@ page isELIgnored="false" %> 启用EL表达式,jsp2.0默认是启用的。

el还涉及到操作符,也能够完成类似struts1.x标签库的效果。更多:http://www.blogjava.net/supercrsky/articles/179363.html。

JSTL

Jsp standard taglibrary一个不断完善的开源标签库,包括core fmt sql tlv四个标签库。

使用时需要引用到两个jar包,jstl.jar和standard.jar。迭代和条件判断、数据管理格式化、XML 操作以及数据库访问。通常EL表达式会配合使用。

环境配置

导入.jar包

Jstl.jar和standard.jar

导入uri资源文件

<%@ taglib uri="http://java.sun.com/jsp/jstl/core"prefix="h"%>,这里我自定义写成了h,当然一般情况还是推荐写为c。

分类

Core

主要用于显示数据,可以替代 out或者 <%=%> 标签来输出对象的值。类似struts中的write

demo

<li>测试jstl核心库</li><br><li>普通表达式</li><br>   <h:out value="123普通文本显示" /><li>结合EL表达式显示在servlet中设置的属性</li><br>   :<h:out value="${hello}" /><li>当显示为空时,显示相应的缺省值</li><br>   :<h:out value="${hellodefault }" default="没有值" /><li>显示html字符串</li><br>   :显示html效果  :${zi }<br>   :利用核心库标签直接显示html   :<h:out value="${zi }" escapeXml="true" /><br><p>H:set & H:remove 设置变量及移除</li><b r>:<h:set value="setVal" var="setID" />显示在set中的value“setVal”  :${setID }<li>if条件控制</li><br><h:if test="${V1 lt V2 }">:v1 小于 vs</h:if><p>循环控制<li>传统jsp方式加载表格数据</li><br><%List userList = (List) request.getAttribute("user");%><table border="1"><tr><td>name</td><td>age</td><td>height</td></tr><%if(userList==null || userList.size()==0){%><tr><td colspan=3>对不起,没有数据!</td></tr><%}else{for(Iterator iter=userList.iterator();iter.hasNext();){People people =(People)iter.next();               %><tr><td><%=people.student.name%></td><td><%=people.student.age %></td><td><%=people.height %></td></tr><%}}%></table></body><li>利用jstl标签显示表格数据</li><br><table border="1"><tr><td>name</td><td>age</td><td>height</td></tr><h:choose><h:when test="${ empty  user}"><tr><td colspan=3>真的,该表格没有数据!</td></tr></h:when><h:otherwise>      <h:forEach items="${user}" var ="user" varStatus="vs"><h:choose><h:when test="${vs.count mod 2==0 }"><tr bgcolor="grey"></h:when><h:otherwise><tr bgcolor="red"></h:otherwise></h:choose><td>${user.student.name }</td><td>${user.student.age }</td><td>${user.height }</td></tr></h:forEach></h:otherwise></h:choose></table><br><li>异常处理</li><h:catch var="msg"><%Integer.parseInt("shishi");%></h:catch>${msg }<br><p><li>import引入资源</li><h:import url="http://localhost:8080/drp3.0/login.jsp" /><p><li>c:url,c:param演示指定url传值</li><p><h:url value="http://www.baidu.com" var="val"><h:param name="userID" value="3"></h:param><h:param name="pwd" value="123456"></h:param></h:url>${val }<br><li>url重定向</li>   

Fmt

顾名思义就是针对格式化的处理

demo

    <li>测试format日期</li>  <fmt:formatDate value="${riqi}" /><br><li>short格式日期</li>  <fmt:formatDate value="${riqi}"  dateStyle="short"/><li>both格式日期</li>  <fmt:formatDate value="${riqi}"  type="both"/>

Sql

直接在页面上针对数据库进行操作,当然一般这种情况很少使用,仅限特殊情况。

demo

建立数据库连接
<sql:setDataSourcedriver=”driverClass” url=”jdbcURL”user=”username”password=”pwd”                [var=”name”][scope=”page|request|session|application”]/>

后序

JSTL、struts标签、EL表达式都是自定义标签的一种,而EL是servlet的标准,通常都会兼容使用,在一开始是为了来简化页面,杜绝页面java代码的出现;struts标签机JSTL都需要相应的jar包来配置,以及相应的uri定位资源引入。jstl是相对的标准,而struts开发包也携带了jstl的jar包,查询资料有讲struts标签的性能相对jstl差点,具体还没有实践过,没有体会。总的来讲,都是标签库的一种。具体使用,个人习惯结合项目标准来吧。

转载于:https://www.cnblogs.com/guziming/p/4232669.html

java web开发常用标签相关推荐

  1. java web开发初学_2018年学习Web开发的绝对初学者指南

    java web开发初学 This post was originally published on Coder-Coder.com. 该帖子最初发布在Coder-Coder.com上 . If yo ...

  2. Java Web开发API Boy如何进阶?

    导语 | Java Web后台开发基本都离不开Spring生态这一套,Spring框架功能极其强大,会帮忙做许多工作,我们通常只需要在一个函数(包含request和response两个入参)中写处理逻 ...

  3. 贯通Java Web开发三剑客

    2019独角兽企业重金招聘Python工程师标准>>> 贯通Java Web开发三剑客 内容简介 本书分为六篇共19章,包括基础知识.Eclipse工具的介绍.Tomcat工具以及S ...

  4. JAVA WEB开发实战-张晨光-专题视频课程

    JAVA WEB开发实战-379人已学习 课程介绍         走进JSP.掌握JSP语法.JSP内置对象.Servlet技术.综合实验(一)--JSP使用Model2实现登录模块.EL表达式语言 ...

  5. java web 开发之写在前面(0)

    java是sun公司(现在属于Oracle公司)推出的能够跨越多平台的.可以执行最高的一种面向对象的编程语言,也是目前最先进.特征最丰富.功能最强大的计算机语言.利用java可以编写桌面应用程序,we ...

  6. 如何搭建java web环境_搭建java WEB开发环境和应用

    搭建java WEB开发环境和应用 更新时间:2009年06月07日 02:28:56   作者: 使用Tomcat服务器,使用DBCP数据源搭建Web开发环境 一 使用Tomcat服务器,使用DBC ...

  7. java web开发需要学习哪些知识_java web开发需要学习哪些知识?

    现在世界已经进入一个以web为核心的阶段,掌握一门相关技术是非常有用的,那么java web开发需要学习哪些知识呢?下面小编就来给大家分享一下java web开发的知识. 1.面向对象分析设计思想 J ...

  8. Java Web 开发 从入门到入?

    Java Web 开发 学习记录一 Web 前端基础 标题 这是一个知识点 Java Web 开发 学习记录一 Web 前端基础 前言 一.HTML相关介绍 二.HTML 1.HTML文件的基本结构 ...

  9. java web开发实战经典 源码_李兴华 java_web开发实战经典 源码 完整版收集共享

    李兴华 java_web开发实战经典 源码 完整版收集共享 01f8a7  在  2018-11-07 20:41:33  上传  10.92 MB 第1章 JAVA WEB开发简介 1.1.WEB发 ...

最新文章

  1. Android, BaseAdapter 处理大数据量时的优化
  2. Maven中的profile和spring boot中的profile进行结合
  3. C. Number of Ways(前缀和)
  4. python 钉钉机器人自定义发送文件_Python自定义钉钉机器人发送自动化结果报告...
  5. python学习之散学
  6. boxfilter 函数
  7. 计算机组装各个配件的选用,组装电脑各个配件装机心得与经验
  8. /etc/fstab自动挂载文件详解
  9. 使用代码创建AutoLayout约束
  10. Equipment delta download debug from ERP side
  11. 数据库备份DBS 新增Region支持:华北2、华东2和华南1
  12. c语言趣味程序设计编程100例精解,c趣味编程100例
  13. 01串匹配问题 —— Binary Strings【Gym - 101845B】
  14. armbian n1 桌面_Armbian5.89桌面版安装OpenMediaVault教程
  15. 图像的频谱图简单理解
  16. Win7加密访问共享文件夹
  17. 毁人不倦 - 大公司小公司
  18. MAX9286+MAX96705高级辅助驾驶系统ADAS方案
  19. 儿时的动画,你看过那些?-发展时期
  20. 吐槽下Arcgis的二次开发

热门文章

  1. Ajax与三层架构实训教案
  2. HTML5 Web Worker
  3. Linux内存管理初探
  4. 算法训练 最长字符串 java
  5. matplotlib(四)核心模式以及注意事项
  6. 单机/伪分布式Hadoop2.4.1安装文档
  7. 第13课:动手制作自己的简易聊天机器人
  8. xgboost使用自定义的loss function
  9. Elasticsearch对地理数据查询(一)
  10. Spark性能优化指南:基础篇