在微信读书上在看一本李刚写的Struts 2.X权威指南 (好像叫这个)的书,可以看得出来作者的开发经验还是很充足的,但是觉得他的尺度和顺序没有把握好,他自己说拦截器是数据校验、国际化的基础…完了还把拦截器放在大后面讲…应该讲完Action就讲拦截器啊,这样才有前置知识你后面的知识才好说啊,而且拦截器很重要的好伐…数据校验基本上讲得是Pattern,你还不仔细将Pattern,这是个啥意思….好了,不吐槽了,人家能出书还是水平在哪里的,希望下一版本能注意吧。

今天来看一看struts2的标签库吧。

Struts 2 标签库

就是为了方便开发者获取数值和传递数值而定义的一套前端标签。

使用:首先在使用的Struts2标签库的jsp页面中引入标签库:

<%@ taglib prefix=”s” uri=”/struts-tags”%>

这样就可以使用了,看到了prefix是s,所以看到s:的都是struts的标签。这让我想到了Codeigniter,在文件上传的时候直接一个标签就行了,没有需要在写上multiply-form 云云。有时候还是挺方便的。但是我对这个标签的态度比较陌生,觉得不像手写的靠谱 who konws。

其实和HTML差不多,struts的标签库也都很简单,来写个例子:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <body>
  <center>
  <h2>注册用户</h2>
    <s:form action="register" method="post">
        <s:textfield name="username" label="姓名"></s:textfield>
        <s:password name="password" label="密码"></s:password>
        <s:select name="degree" label="学历" list="{'高中及以下','大学','研究生'}"></s:select>
        <s:radio name="sex" label="性别" list="{'男','女'}"></s:radio>
        <s:textarea name="protocol" label="注册协议" value="asjdflkajfljasfkljaskldfjlk;asfj;ldsf"></s:textarea>
           <s:checkbox name="ok" label="同意注册协议"></s:checkbox>
        <s:submit value="提交"></s:submit>
        <s:reset value="重置"></s:reset>s
    </s:form>
    </center>
  </body>
</html>

真的简单了很多!之前顾虑怎么设置css啊,每个标签还有一个属性,cssClass和cssStyle 就行了,比较喜欢的是select里面的list属性,非常方便,节省了很多代码量。

具体的表单标签用到了查书就可以了,这里想写一个级联操作的例子:

<s:form name="selectCity">
      <s:doubleselect label="请选择城市" name="city"
          list="{'北京市','上海市'}"
          doubleList = "top=='北京市'?{'西城区','东城区','海淀区','朝阳区'}:{'闸北区','普陀区','杨浦区','闵行区'}"
          doubleName="cityZ" />
  </s:form>

这个特别简单了就,我觉得要比原生的js简单,而且很实用。需要注意的是使用doubleselect必须制定form的name属性。

除了上面的标签之外,还有<s:file accept=”接收文件的类型” name=””>

<s:token />防止重复提交的标签。

除了表单标签外,其他的非表单标签和jsp的几乎一致,不做赘述。

Struts2学习笔记⑥的更多相关文章

  1. Struts2学习笔记⑧

    今天是Struts2学习笔记的最后一篇文章了.用什么做结尾呢,这两天其实还学了很多东西,没有记录下,今天就查漏补缺一下. 文件上传与下载.FreeMarker以及昨天没做完的例子 文件上传与下载 文件 ...

  2. Struts2学习笔记①

    Struts2 学习笔记① 所有的程序学习都从Hello World开始,今天先跟着书做一个HW的示例. Struts2是一套MVC框架,使用起来非常方便,接触到现在觉得最麻烦的地方是配置文件.我的一 ...

  3. Struts2学习笔记NO.1------结合Hibernate完成查询商品类别简单案例(工具IDEA)

    Struts2学习笔记一结合Hibernate完成查询商品类别简单案例(工具IDEA) 1.jar包准备 Hibernate+Struts2 jar包 struts的jar比较多,可以从Struts官 ...

  4. Struts2 学习笔记(概述)

    Struts2 学习笔记 2015年3月7日11:02:55 MVC思想 Strust2的MVC对应关系如下: 在MVC三个模块当中,struts2对应关系如下: Model: 负责封装应用的状态,并 ...

  5. struts2学习笔记 ⑤

    拦截器初探 昨天临睡觉之前看了看拦截器,也在昨天的学习笔记里面胡诌诌了几句,今天就来好好的会会拦截器这个东西.实际上拦截器是一种模块实现的机制<起码我是这么体会的>(至于说书里面说体现了A ...

  6. [struts2学习笔记] 第二节 使用Maven搞定管理和构造Struts 2 Web应用程序的七个步骤

    本文地址:http://blog.csdn.net/sushengmiyan/article/details/40303897 官方文档:http://struts.apache.org/releas ...

  7. struts2学习笔记之二:基本环境搭建

    学习struts2有一段时间了,作为一个运维人员学习的时间还是挺紧张的,写这篇文件为了方便以后复习时使用 环境: MyEclipse 10 tomcat6 jdk1.6   首先建立一个web项目,并 ...

  8. 【Struts2学习笔记-4】包含其他配置文件

    包含其他配置文件 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLI ...

  9. 【Struts2学习笔记-3】常量配置

    Struts2常量 配置Struts2常量值有3个地方,1)在struts.properties文件中配置常量:2)在web.xml文件中配置FileterDispatcher指定初始化参数来配置常量 ...

  10. struts2学习笔记(4)——数据类型转换

    回过头来看昨天的那个例子. 在昨天的例子中,只转换了一个Point类,如果想转换多个Point类怎么办呢?在昨天的例子上面做一个小的修改. 首先在input.jsp页面中修改几个输入框. <s: ...

随机推荐

  1. Kingbase在初始化时遇到的错误

    FATAL: could not create semaphores: No space left on deviceDETAIL: Failed  system call was semget(58 ...

  2. Android学习笔记总结

    第一步: Android(1) - 在 Windows 下搭建 Android 开发环境,以及 Hello World 程序 搭建 Android 的开发环境,以及写一个简单的示例程序 · 在 Win ...

  3. 删除坐标相同文本对象 按照原y坐标排序

    ;; ;;程序名称:对象水平对齐程序,并且按照竖直方向排列 ;;执行命令:tb2 ;;程序功能:将选定的对象左对齐,并且按照竖直方向排列. ;; (defun c:tb2(/ selobjs oldc ...

  4. 记一次企业级爬虫系统升级改造(五):基于JieBaNet+Lucene.Net实现全文搜索

    实现效果: 上一篇文章有附全文搜索结果的设计图,下面截一张开发完成上线后的实图: 基本风格是模仿的百度搜索结果,绿色的分页略显小清新. 目前已采集并创建索引的文章约3W多篇,索引文件不算太大,查询速度 ...

  5. java精度计算代码,指定精确小数位

    java代码: public class App2 { public static void main(String[] args) { String val = checkNumber(" ...

  6. GIS制图课程目录(持续整理)

    GIS制图课程目录 by 李远祥 由于过去一年都没有进行更新,近期终于抽出时间来进行相关知识的整理,因此,对专项技术进行了不同技术线条的梳理.为了方便阅读,特意整理一下全书的目录结构,希望对读者有帮助 ...

  7. android Android性能优化之如何避免Overdraw

    什么是Overdraw? Overdraw就是过度绘制   怎么来消灭overdraw呢?总的原则就是:尽量避免重叠不可见元素的绘制,基于这个原则,我们大概可以想出以下几招: 第一招:合理选择控件容器 ...

  8. 今日头条- iOS客户端 启动速度优化实践

    版权声明 作者:今日头条iOS团队 原文:https://techblog.toutiao.com/2017/01/17/iosspeed/ 应用启动时间,直接影响用户对一款应用的判断和使用体验.头条 ...

  9. 关于Test--Pattern Generator IP核的测试

    关于Test--Pattern Generator IP核的测试 1.Test--Pattern Generator 功能介绍 生成24-bit RGB视频流,此IP核可以用于系统测试,不需要先在片上 ...

  10. LINQ查询表达式和LAMBDA点标记方法基础

    在上一篇文章中,我们介绍了LINQ的一些基本用法,这一篇我们来看下另一种更简洁更优雅的表达式,Lambda表达式,也可以叫做点标记方法. 相信大家在实际工作中都用到过这两种方式,下面我们还是用实例来看 ...