`
gsvince
  • 浏览: 54696 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Struts入门-03

阅读更多
struts 国际化
国际化:i18n:internationalization,能够实现读取不同的资源文件显示不同的字符信息。以适应不同的地区和语言。
1:处理汉字显示:
使用命令:native2ascii 原文件名 新文件名
把汉字转化为ascii码

对于中文,资源文件查找的顺序是:
ApplicationResources_zh_cn.properties-->ApplicationResources_zh.properties-->ApplicationResources.properties
其他语言也是找带相应后缀的文件再找ApplicationResources.properties

2:jsp页面

    方法1: Set charset in your JSP page: 在所有JSP页面里设定编码方式
           <%@ page language="java" contentType="text/html;charset=UTF-8" %>
    方法2: Use filter to set charEncoding to get input from client 用filter设定获得用户输入内容的编码方式


3:在Internet 选项里,语言-->语言首选项设置语言


Tag Libraries -- Unit 5


HTML Tags
Bean Tags
Logic Tags
nested Tags


********************************************************************************

1.  HTML Tags:

     html:html               html:base            html:link  
     html:rewrite            html:img             html:form
     html:text               html:cancel   html:reset
     html:submit             html:hidden          html:checkbox
     html:multibox           html:radio           html:select
     html:file               html:errors          html:messages
    
******************************************
用于生成基本HTML元素的标签
******************************************

<html:link  forward     href    page   paramId   paramName    paramProperty name/>  
     生成 <a href /> 标签
     will rewrite URL, add SessionID in URL if client turn off Cookie 

 

  1:外部完整的url连接
<html:link  href="http://www.yahoo.com" >  yahoo    </html:link>  
               --> <a href="http://www.yahoo.com">            // !!!!note: full URL name

  2:相对url连接
<html:link page="/my.do" >  my page  </html:link>   //!!!! same web application
                  --> <a href="/yourWebapp/my.do"> my page  </a>

  3:相对url连接带参数

<html:link page="/your.do?para1=hello&para2=world" >  Your page  </html:link>
                  --> <a href="/yourWebapp/your.do?para1=hello&para2=world"> Your page  </a>


  4:  全局转发url连接 
<html:link  forward="success" > Success  </html:link>     
                               //  only in <global> <forward> tag,  !!!not in <action> <forward> tag 
                  --> <a href="yourWebApp/success.jsp"> 
在struts-config.xml文件里:
<global-forward>
                     <forward  name="success"  path="/success.jsp"  >
                 </global-forward>
             
  5:带有页面变量的url连接
     <% String s="hello";
                request.setAttribute("stringBeanName", s);
             %>
                 <html:link page="/his.do"  paramId="param1"  paramName="stringBeanName">
                     his page        
                 </html:link>
                           -->  <a href="/yourWebapp/his.do?param1=hello"> his page  </a>

  6:  带有javabean属性的url连接
<% Student st=new Student("zhang", 25);
                request.setAttribute("student", st);
             %>

            <html:link page="/her.do"  paramId="param1"  paramName="student"  paramProperty="age">
                 her page 
            </html:link> 
                    --> <a href="/yourWebapp/her.do?param1=25"> her page  </a>


  7:  传递多个参数的url连接
    <% HashMap map=new HashMap();                              //URL has many parameters
                map.put("name1", "Hello");
                map.put("name2", 'world");
                request.setAttribute("mapBean", map);
             %>
            <html:link page="/our.do"  name="mapBean">  our page  </html:link>
                     -->  <a href="/our.do?name1=hello&name2=world">  our page  </a>


-----------------------
在表单中上传文件的标签
<html:file property=" fileName"  />    生成<input type="file" name="fileName"/> 标签
          //property for FormFile attribute of ActionForm

jsp:
<html:form  action="myfile.do"  method="post"  enctype="multipart/form-data">
                    please select the file you would like to upload:
                    <html:file property="fileName"  /> 
                    <html:submit />
              </html:form>

Form:
      public class MyForm  extends ActionForm{
           private FormFile fileName;
             ....
      }

Action:

FormFile file  = uploadfileForm.getFile();//得到上传文件
if(file==null){
return mapping.getInputForward();
}
String filename= file.getFileName();//得到文件名
uploadfileForm.setFilename(filename);

String size = Integer.toString(file.getFileSize())+"byte";//得到文件大小
uploadfileForm.setSize(size);
try {
InputStream is = file.getInputStream();//获得文件的输入流
String storepath = servlet.getServletContext().getRealPath("/filepuload");//获得存放路径
System.out.print(storepath);
OutputStream out = new FileOutputStream(storepath+"/"+filename);//获得文件输出流
int bytes=0;
byte [] buffer = new byte[8192];
while((bytes = is.read(buffer,0,8192))!=-1){
out.write(buffer,0,bytes);
}
out.close();
is.close();
file.destroy();//释放文件连接
------------------------------------------------

<html:errors  property    /> 输出错误信息
           

    in jsp page:  <html:errors  property="propertyName1" />

--------------------

<html:messages property/> 输出信息
     
    in page:  <html:messages    property="propertyName1" />


********************************************************************************
********************************************************************************

Bean Tags:

    bean:cookie           bean:header             bean:parameter               bean:page
   *bean:message          bean:resource           bean:struts                  bean:include
   *bean:define           *bean:size              *bean:write

*************************************************
检索HTTP请求信息或JSP隐含对象
*************************************************  

----------------------------------------------------
<bean:parameter    id*   multiple  name*   value />
读取HTTP请求参数

   Example1.  <bean:parameter id="arg"  name="fname"  value="default" />     //!!!value  -> default value
                <bean:write name="arg" />

        request:       http://localhost:8080/mywebapp/mypage.jsp?fname=zhang

                  ----->  zhang


   Example2:  <bean:parameter id="arg"   multiple="yes"  name="options"  value="noarg" />
                 

            similar to
                  <%   String[]  arg=request.getParameterValues("options);
                       for (int i=0; i<arg.length;i++) {
                          out.writeln(arg[i]);
                     }
                  %>
           http://localhost:8080/mywebapp/mypage.jsp?options=zhang&options=wang&options=chen

                     ----->           zhang
                                      wang
                                      chen  
               
------------------------------------------

**************************************************
访问WEB应用资源
***************************************************

<bean:message  bundle   key  name  property  arg0, arg1/ >


     Example1.  key value from message-resources file
            * label.hello=Hello, welcome to my page      // in message-resources file

                <bean:message  bundle="special"    key="label.hello" />     //in special resource bundle
                     -----> Hello, welcome to my page

            * hello=Hello, {0}     // in message-resources file
                <bean:message  bundle="special"  key="hello"   arg0="how are you"/>
                    -------> Hello, how are you               

      Example2.    value of key is  from  name:  String bean
                <% request.setAttribute("myString", "label.hello"); %>
    
                <bean:message   name="myString" />
                      -----> Hello, welcome to my page
       
      Example3.   value of key is  from  name:  Java bean
                <%  Mybean bean=new Mybean();
                    bean.setValue("label.hello);
                    request.setAttribute("mybean", bean);
                %>

                <bean:message  bundle="special"   name="mybean"   property="value" />
                   -----> Hello, welcome to my page


---------------------------------
<bean:include  id   forward   page   href/>
    把其他WEB资源的内容存放在一个变量里, 而不是直接显示在页面上(可以通过<bean:write>  显示)
                

   Example1:   <bean:include  id="test"   forward="banner" />     //  !!!in  <global-forwards> tag
               <bean:write name="test"  filter="false"/>

   Example2:  <bean:include  id="test"     page="/banner.jsp"  />
              <bean:write name="test"  filter="false"/>

   Example2:  <bean:include  id="test"     href="yourWebApp/banner.jsp"  />
              <bean:write name="test"  filter="false"/>

*******************************************
定义或输出JavaBean
*******************************************
<bean:define  id*   toScope  name    property   type   scope   value  />
  定义一个变量
   Example1:  <bean:define  id="myId"  value="hello, world"  toScope="session"/> 
              <bean:write name="myId"  scope="session"  />
           ----->  hello, world

       <%   session.setAttribute("myId", "hello, world");
            out.println(session.getAttribute("myId");
       %>


-----------------------
<bean:size   id    name  scope />
    获得Map, Collection或数组的长度

    Example1: <% List l=new Vector();
                 l.add("hello");
                 l.add("world");
                 request.setAttribute("list", l);
              %>

               <bean:size   id="length"   name="list"  scope="request"/>
                   <bean:write   name="length"  />
                       -> 2
--------------------------------------------
<bean:write  name     property   format    filter   scope />
输出某个Bean或它的属性的内容, format 用于设置输出数据的格式, filter=true把输出内容中的特殊HTML符号作为普通字符来显示.

    Example1:  <%  request.setAttribute("pi", Float.valueOf("3.14159"));%>
               <bean:write   format="#.##"   name="pi"  scope="request" />
                      -> 3.14
            
                <%  request.setAttribute("str", "<h3> hello,world  </h3> ");  %>
               <bean:write    name="str"  scope="request" filter=true/>
                   ->  <h3> hello,world  </h3>
*************************************************************************************************
*************************************************************************************************
Logic tags:

   logic:equal               logic:notEqual            logic:lessThan      
   logic:lessEqual           logic:greaterThan         logic:greaterEqual
 
   logic:match               logic:notmMatch      
   logic:empty               logic:notEmpty
   logic:present             logic:notPresent
   logic:messagesPresent     logic:messagesNotPresent
   logic:iterate            
   logic:forward             logic:redirect


******************************************
进行循环遍历的logic标签
在默认情况下, 将依此在page, request, session, application范围里寻找name属性指定的变量. 此外, 也可以通过scope属性来指定变量的存在范围.
******************************************
<logic:iterate  id   indexId   name offset   length >     offset: 开始位置 
 
  <%
Vector v = (Vector)request.getAttribute("alluser");
  request.setAttribute("alluser",v);
  %>


  <TABLE>
  <TR>
  <TD>no</TD>
  <td>id</td>
  <TD>name</TD>
  <TD>password</TD>
  <TD>select</TD>
  </TR>
    <logic:iterate id ="alluser" indexId = "ind" name="alluser">
    <tr>
   
   
        <TD>
    <bean:write name="ind"/>
    </TD>
    <TD>
    <bean:write name="alluser" property="id"/>
    <input type="hidden" name="id" value='<bean:write name="alluser" property="id"/>'/>
    </TD>
      <TD>
    <bean:write name="alluser" property="name"/>
    </TD>
      <TD>
    <bean:write name="alluser" property="password"/>
    </TD>
    <TD>
    <html:submit>delete</html:submit>
    </TD>
    </tr>
   
    </logic:iterate>
    </TABLE>
   
  </body>


分享到:
评论

相关推荐

    struts2-tags-文档.rar

    对于初学者,"struts2.chm"提供了入门指导;对于有一定经验的开发者,"struts2-tags-API.chm"和"struts2 2.chm"将帮助他们更好地利用Struts2的高级特性,提升开发效率。总的来说,这个压缩包是学习和开发Struts2应用...

    struts2-struts入门

    在入门Struts2时,首先需要了解其基本概念和目录结构。Struts2的框架设计理念是提供一个半成品,即已经包含了大部分通用功能,开发者只需要关注与业务相关的部分。在提供的版本struts-2.3.15.3中,有两个示例应用:...

    struts2-blank

    "struts2-blank"项目是一个基础的Struts2示例代码,可以帮助初学者快速理解和入门Struts2框架。 在Struts2框架中,核心组件包括Action、Interceptor、Result、ValueStack等。Action是业务逻辑的执行者,Interceptor...

    Struts2-入门学习

    这个"Struts2-入门学习"的主题将引导你了解Struts2的基础知识,包括其架构、核心组件、配置以及如何在实际项目中应用。 Struts2的核心组件包括: 1. **Filter Dispatcher**:这是Struts2框架的入口点,它是一个...

    struts2-例子

    在这个"struts2-例子"压缩包中,我们主要关注的是一个名为"struts2-blank"的项目,这是一个基础的、空白的Struts2应用模板,用于新手快速入门和理解框架的基本工作原理。 首先,Struts2的核心在于Action类,它是...

    struts-2.3.14-pro

    这些示例可以帮助开发者快速入门,了解如何在实际项目中应用Struts 2框架。 6. **学习与开发**: 对于开发者来说,熟悉Struts 2.3.14-Pro意味着要掌握Action类、配置文件(struts.xml)、拦截器、结果类型、动态...

    struts2--1.入门程序

    入门程序"应该是针对初学者设计的一系列教程,旨在帮助开发者快速理解并掌握Struts2的基础用法。 在Java Web开发中,Struts2框架提供了良好的架构模式,可以有效地组织代码,提高开发效率,并且它支持多种视图技术...

    struts2-----之一

    在本学习资料中,初学者将能深入理解Struts2的核心概念和工作原理,从而轻松入门。 Struts2框架的核心功能包括: 1. **请求分发**:Struts2通过Action类来处理HTTP请求。每个Action类对应一个业务逻辑,接收请求后...

    struts2.5.16-jar包

    在"Struts2 入门\struts2基本jar包"目录下,你可以找到一组基础的jar包,这些是学习和搭建Struts2入门级应用所需的基本组件。它们包括了处理HTTP请求、映射请求到Action、视图渲染等功能的关键类。通过这些基本jar包...

    struts入门例子-eclipse搭建

    这个入门例子是专为初学者设计的,旨在帮助理解如何在Eclipse集成开发环境中配置和运行一个基本的Struts2项目。在Eclipse中搭建Struts2环境涉及多个步骤,包括设置JDK、安装插件、创建项目以及配置相应的库和文件。 ...

    struts2--国际化入门

    本教程将引导你入门Struts2的国际化功能,这是一项允许应用程序支持多种语言的重要特性。 在Struts2中实现国际化,首先你需要创建资源文件,这些文件通常以`.properties`为扩展名,例如`messages.properties`和`...

    struts-2.3.16.1-docs.zip

    1. **快速入门**:这通常是一份简明教程,帮助开发者快速了解Struts2的基本概念和配置,如Action、Result、Interceptor等,并指导如何搭建第一个运行的Struts2应用。 2. **使用文档**:这部分详细介绍了如何在实际...

    Struts1-2和JSTL帮助文档及快书入门图书

    Struts1-2 和JSTL 帮助文档以及Struts入门的图书,可以轻松学习Struts,及Struts和Jstl标签库

    struts2-docs

    11. ** strut2-docs 中的详细内容**:压缩包中的文档可能包括框架概述、快速入门指南、配置参考、API文档、插件介绍、示例代码和最佳实践等多个部分,为开发者提供全方位的学习材料。 通过阅读这些文档,开发者能够...

    starting-struts2-chinese.rar

    这个"starting-struts2-chinese.rar"压缩包文件包含了一份中文版的"starting-struts2-chinese.pdf"文档,很显然是为帮助初学者理解和入门Struts2框架而准备的。 Struts2的核心是模型-视图-控制器(MVC)设计模式,...

    struts-2.5.16升级jar包.zip

    此外,描述中提到的"Struts2 入门\struts2基本jar包"目录,通常会包含一些基础的入门示例和教程所需的jar包,这些可能包括了用于演示基本功能和配置的简化版本,如简单的Action类、配置文件、以及其他必要的依赖。...

    struts-2.3.12.rar

    总之,"struts-2.3.12.rar"是一个宝贵的资源,对于想要学习或深入了解Struts 2框架的开发者来说,无论是入门还是深入研究,都有极大的价值。通过这个压缩包,你可以全面地了解并掌握Struts 2的方方面面,提升你的Web...

    struts2-easyui.

    在"struts2-easyui"的例子中,我们看到的是一个基础的快速入门教程,它演示了如何将这两个技术整合在一起,实现数据的增删改查功能。下面将详细解释这个组合的应用场景、工作原理以及相关的知识点。 1. **Struts2...

    jcaptcha4struts2-demo-2.0.1.zip_DEMO_JCaptcha4Struts2.jar_jcaptc

    这个DEMO旨在帮助开发者快速理解和应用Jcaptcha4Struts2,为初学者提供了一个基础入门级的学习资源。 Jcaptcha4Struts2是基于Jcaptcha(Just Another CAPTCHA)的Struts2插件,它将Jcaptcha的功能无缝集成到Struts2...

Global site tag (gtag.js) - Google Analytics