Struts 1.x | <bean> 标签库

   Bean标签库


           1)Bean标签库中的标签可以访问已经存在的javaBean以及它的属性,还可以定义新的javaBean,把它存放在

              指定的范围内。还用于输出国际化信息
           2)要使用bean标签库,需要加入
               <%@ taglib uri="http://struts.apache.org/tags-bean"  prefix="bean" %>标签库
            

       <bean:parameter>标签


                 A:这个标签主要的功能是用于将请求的参数(get提交与post提交)封装成一个java脚本可以
                   访问的变量
                 B:<bean:parameter id="a" name="id"/>
                    id:要page范围中的变量的名。一般用id表示
                    name:属性是参数名
                    上述的代码表示把请求参数名为id的值保存到page范围中变量a中去
                   比如:
                    源页面:
                     < html:link href = "/StrutsTagDemo/parameter_2.jsp?custId=1127"/>
                    接受页面:
                    < bean:parameter id = "custId" name = "custId" />
                    < bean:write name = "custId" />
                    会输出1127
                 C:<bean:parameter>相当于一个java脚本
                     <bean:parameter id = "custId" name = "custId" /> 相当于
                       <%
                              String custId=request.getParameter("custId")
                       %>
                    而< bean:write name = "custId" /> 相当于
                      <%
                             out.print("custid")
                      %>
                  D:<bean:parameter id = "custId" name = "custId" />把值取过来之后,完全
                    可以java脚本进行访问
                    比如:
                      <bean:parameter id = "custId" name = "custId" />
                       <%
                             custId=custId+"abcd"//直接对custId进行处理
                       %>               

 
       <bean:message key="index.passWord"/>

 
                        A:<bean:message>是用在国际化功能中输出国际化消息的
                        B:<bean:message key="index.passWord"/> 其中的key与国际化资源文件对应
                        C:实现国际化的步骤:
                          1)在web应用程序的class文件夹(一定要在此文件夹)下面创建一个resource包字可以随便取)
                          2)在resource包下面创建两个文件,文件名固定不能修改.
                             格式形如:键=值
                             application_en.properties  其中的内容为(代表英文)
                            ==========================================
                                 index.title=On Line  NetBook Manager
                                 index.userName=userName
                                 index.passWord=password
                                 index.submit=submit
                                 index.reset=reset
                          ==========================================
                           application_zh.properties 其中的内容为(代表中文)

                                 index.title=在线图书管理系统
                                 index.userName=用户名
                                 index.passWord=密码
                                 index.submit=提交
                                 index.reset=重置

                          3)如果是中文为了避免乱码。要通过如下命令进行转换
                                 native2ascii -encoding gb2312 源文件 
                            可直接在cmd模式下,通过拖曳的方法得到中文文件对应的编码
                            index.title=\u5728\u7ebf\u56fe\u4e66\u7ba1\u7406\u7cfb\u7edf
                            index.userName=\u7528\u6237\u540d
                            index.passWord=\u5bc6  \u7801
                            index.submit=\u63d0 \u4ea4
                            index.reset=\u91cd \u7f6e复制后直接付盖application_zh.properties
                         4)配置struts-config.xml文件,在<message-resources>节点下配置属性
                            <message-resources parameter="resource.application" />
                            注意这里面的resource表示在class文件夹的resource下面有application
                            对应的两个中英文资源文件。
                         5)在jsp页面里面可以通过
                             <bean:message key="index.passWord"/>来从资源文件里面获取
                         6)可以在IE里面的工具-->internet选项-->常规--->语言
                           在里面加入"中文[zh]"与"英文[en]"通过改变顺序会发现jsp页面会自动加载
                           对应的中英文资源文件
                         7)如果失败,请注意重新启动tomcat之后, 再试验
                         8)如果想实现动态中英文转化,可以通过两个超级连接,连到一个action里面
                           进行处理
                            <a href="Action.do?en=0">英文</a>
                            <a href="Action.do?en=1">中文</a>  


          =======================Actioin代码======================
              import org.apache.struts.Globals; //注意导入以下包
              import java.util.Locale;
              int en=Integer.parseInt(request.getParameter("en"));

              if (en==0) {
                   request.getSession().setAttribute(Globals.LOCALE_KEY,Locale.ENGLISH);
              } else {
                  request.getSession().setAttribute(Globals.LOCALE_KEY,Locale.CHINA);
              }
              return mapping.findForward("index"); 

    

   <bean:writer>标签


             1)用来输出存放在四种范围内的数据
             2)格式:<bean:write name="要输出的四种范围内的变量名"/>
             3)可以输出普通的变量
                     <%
                          String uid="chen";
                          equest.setAttribute("uid",uid); //如果不把uid放入request范围内,则bean:write不能输出
                    %>                
                     <bean:write name="uid"/> 相当于${uid}
             4)输出JavaBean的值
               格式:bean:write name="已经存放在四种范围内的javabean的变量名"

                                          property="要输出 的JavaBean的属性"/>
                 <%
                     worker d=new worker();
                     d.setId("w1");
                     d.setName("chan");
                     request.setAttribute("d",d);
                 %>
                 <bean:write name="d" property="name"/>        相当于${d.name}
                  所以如果要输出javaBean的内容,一般直接用EL就行了.
                 举例:让用户输入一个工号,检验该工号在不在数据库中,如果在下面的
                       输入框中显示对应的详细资料。如果没有则输出找不到该职工,如果找到
                       职工,则可以修改职工内容
        ==========================jsp页面=========================
            ${msg} 用来显示出错误
            <html:form  action="修改职工的Action.do"> //   
                   工号:<html:text property="id" value="${emp.id}"/>
                    <html:button property="check"

                                          οnclick="window.location='检查是否存在的.do?id='+表单名(会自动成为修改职工

                                                                                                     Action对应的ActionForm名).id.value"/>
                    姓名:<html:text property="name" value="${emp.name}"/><br>
                    职位:<html:text property="job" value="${emp.job}"/>
                   html:submit>提交</html:submit><html:reset>重置</html:reset>
                  </html:form>
        =====================检查是否存在的Action========================
         int id=Integer.parseInt(request.getParameter("id"));
         emp instance=emps.getEmpById(id);
         if (instance==null) {   
                       request.setAttribute("msg","<script>alert('找不到该职工')</script>"); 
                       不能使用out.print("<script>alert('找不到该职工')</script>")原因是该脚本
                       为客户端脚本,而mapping.findForward("show")为服务器脚本先于它执行,解决
                       的方法是把数据传到show.jsp中,再它的页面中提示
          }          
         request.setAttribute("emp", instance);
         return mapping.findForward("show"); 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值