struts1 和struts2 的标签

struts2.0的标签库(简介)
用过struts1.x的人都知道,标签库有html、bean、logic、tiles,
而struts2.0里的标签却没有分类,只用在jsp头文件加上
<%@ taglib prefix="s" uri="/struts-tags" %>
就能使用struts2.0的标签库

下面就介绍下每个标签的用法(有错请指正):

A:

-----超链接,类似于html里的
-----执行一个view里面的一个action
-----如果action的errors有值那么显示出来
-----如果action的message有值那么显示出来
-----添加一个值到list,类似于list.add();
-----自动完成标签的内容,这个是ajax

B:
-----类似于struts1.x中的,JavaBean的值

C:
-----复选框
-----多选框
-----下拉框
-----图像符号

D:
-----获取日期格式
-----日期输入框
-----显示错误信息
-----表示一个块,类似于html的
-----双下拉框 E: -----这3个标签一起使用,表示条件判断 F: -----显示文件错误信息 -----文件上传 -----获取相应form的值 G: ----和标签一起使用 H: -----在里使用,表示头文件结束 -----隐藏值 I: -----加载资源包到值堆栈 -----包含一个输出,servlet或jsp页面 -----获取form的一个输入 -----用于遍历集合 L: -----只读的标签 M: -----合并遍历集合出来的值 O: -----获取标签组 -----左右选择框 P: -----为其他标签提供参数 -----密码输入框 -----得到'value'的属性 -----value的值push到栈中,从而使property标签的能够获取value的属性 R: -----单选按钮 -----重置按钮 S: -----单选框 -----赋予变量一个特定范围内的值 -----通过属性给list分类 -----提交按钮 -----为遍历集合输出子集 T: -----表格框 -----表格 -----I18n文本信息 -----文本域输入框 -----文本输入框 -----拦截器 -----树 -----树的结构 U: -----多选择框 -----创建url


.html标签

1.html元素的标签:

a1. 链接中的name 

a2.  链接到站点外   

a3. 同一个应用     

如:包含请求参数: 

   包含单个请求变量:<% String stringBean = "Value to Pass on URL";

                    pageContext.setAttribute("stringBean", stringBean);%>





 //要有范围



包含多个请求变量: <% java.util.HashMap myMap = new java.util.HashMap();

                      myMap.put("myString", new String("myStringValue") );

                      myMap.put("myArray", new String[] { "str1", "str2", "str3" });

                      pageContext.setAttribute("map", myMap);%>

 url 

b.:  //也可以包含单个或多个请求变量





2.基本表单标签:,,,,

Cancel :Action中的取消事件:

FormBasicForm fbf = (FormBasicForm) form;

        if (isCancelled(request)) { fbf.setStatus("Cancel was pressed!");

            return (mapping.findForward("success"));      }//表示取消选中

else { fbf.setStatus("Submit was pressed!");

            return (mapping.findForward("success"));    }


3.下拉列表和多选列表

 // multiple下拉可多选

Orange //基本的页面输入

//从资源文件中显示

<% Vector colorCollection = new Vector(); colorCollection.add(

         new org.apache.struts.util.LabelValueBean("Pink", "htmlselect.pink"));

      colorCollection.add(              // Pink为label htmlselect.pink为value

         new org.apache.struts.util.LabelValueBean("Brown", "htmlselect.brown"));

      pageContext.setAttribute("colorCollection", colorCollection);   %>

   // labelProperty显示值

4.显示错误消息: errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("key") );

a.显示全局:

b.显示特定字段: errors.add("checkbox1", new ActionMessage("error.checkbox"));

 //bundle资源文件

5.显示信息:

a.//如果为true则从全局中搜索

则:ActionMessages actionMessages=new ActionMessages();

actionMessages.add(ActionMessages.GLOBAL_MESSAGE,new ActionMessage(“key”));

saveMessages(request,actionMessages);

b.从一定的范围中查找:

 

则:protected void saveMessages(HttpServletRequest request,ActionMessages messages){

...request.setAttribute(GLOBAL_MESSAGE_key,messages); }

二:Struts Bean标签

1.访问http请求信息和JSP对象

a.  // value为默认值

     <% if (cookie.getValue().equals("firsttime")) {

         Cookie c = new Cookie("cookiedemo", "Hi Linda!");

         c.setComment("A test cookie");c.setMaxAge(3600);response.addCookie(c);} %>

输出: 

b.  

c. //检索JSP范围,隐含对象

   

d.  // value为默认值

   

检索多值:

通过链接传递参数:

循环输出:<% for (int i=0; i ");} %>

2.访问WEB应用资源: 

a.  //默认资源文件中:hello=Hello,{0}

<% request.setAttribute("stringBean","hello"); SomeBean bean=new SomeBean();

        bean.setName("hello");   request.setAttribute("someBean",bean);   %>

通过变量名或javaBean得到key值再访问资源文件:

// bundle不能省,只能访问资源文件



b. ,但将WEB资源存放在一个变量中,有forward,page,href

 

 

3.定义或输出javaBean,bean:write标签filter为true时会将特殊符号转换成普通字符串

a.value属性:

name和property属性:<% request.setAttribute("sessionBean", session); %>

     

// contextBean为javax.servlet.ServletContext类型,实例化



   name和type属性(用于复制):



三.Struts Logic标签:

1.逻辑判断:(greatEqual,lessEqual,greatThan...)

<% Cookie c = new Cookie("username", "Linda");      c.setComment("A test cookie");

         c.setMaxAge(3600);    response.addCookie(c); %>

a.UserName is Linda 

b. <% SomeBean bean=new SomeBean();    bean.setName("Linda");

        request.setAttribute("someBean",bean);%>

not Tom 

c. <% request.setAttribute("number","100"); %>

 "100" 小于"100.0a"

2.字符串匹配:变量中是否包含指定的字符串

<% request.setAttribute("authorName", "LindaSun");%>

a.

    has the string 'Sun' in it.

 //还有end属性



 starts with the string 'Linda'.

3.判断指定内容是否存在

<% ActionErrors errors = new ActionErrors();

errors.add("totallylost", new ActionMessage("application.totally.lost"));

request.setAttribute(Globals.ERROR_KEY, errors);

request.setAttribute("myerrors",errors);request.setAttribute("emptyString","");%>

a. emptyString is empty! 

b.

判断指定的安全角色,用户,cookie,header或javaBean是否存在 

c. 在范围内检索key



从Globals.MESSAGE_KEY中检索,不同于Globals.ERROR_KEY 



     从指定的ActionMessages对象中检索 


4.请求转发或重定向a.,与配置中同名

b.,也有page,href和forward三种属性

5.循环遍历//offset为开始位置,indexId为序号

a. 遍历集合<% Vector animals=new Vector(); animals.addElement("Dog");

            animals.addElement("Cat"); animals.addElement("Bird");

request.setAttribute("Animals", animals);%>



.
b. 遍历Map<% HashMap h= new HashMap();String fruits[ ] = {"apple","orange","banana"}; h.put("Fruits", fruits); request.setAttribute("catalog", h); %>
//如果value不是集合就不用嵌套了 四.利用Tiles模板和Tiles组件创建复合式网页 1.在web.xml中配置所需要的url和location 2.建立tiles的xml文件放在WEB-INF下: 3.在struts配置文件中配置TilesPlugin插件(ctrl+n): 4.在Action已经存在ActionServlet,并在struts配置文件中配置Action来调用Tiles组件 ForwardAction为Action内置对象,专门负责转发功能,在将请求转发给parameter的组件 5.在index.jsp中插入Tiles组件<%@ page contentType="text/html; charset=UTF-8" %> <%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %> 6.在layout.jsp文件中进行布局并设计好其他页面: <%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles"%>
备注:在需要出现的页面只有写就可以插入框架,根据definition中的content改变主体。 7.Tiles组件的组合(type="definition")以示区别 //将一个组件put成另一个组件的元素


你可能感兴趣的:(struts)