学习struts的第二天

来源:互联网 发布:佳能相机软件下载 编辑:程序博客网 时间:2024/04/29 14:40

学习struts的第二天,现在做下总结。首先是:动态配置ActionForm

Code:
  1. <form-beans>   
  2.      <!-- 静态配置ActionForm    
  3.      <form-bean name="loginform" type="myclass.from.LoginActionForm"></form-bean>   
  4.      -->   
  5.      <!-- 动态配置ActionForm -->   
  6.      <form-bean name="loginform" type="org.apache.struts.action.DynaActionForm">   
  7.         <form-property name="username" type="java.lang.String"></form-property>   
  8.         <form-property name="userpassword" type="java.lang.String"></form-property>   
  9.      </form-bean>  

动态配置以后就可以不用写FromBean了,把参数全都写在了Struts-config的配置文件了,如上代码。这样写在一定程度比较方便,本人建议采用这种方法。

其次是:同时处理从ActionServlet转发过来的多个请求

开始时我们先在JSP页面写二个超链接请求,如下:

Code:
  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>   
  2. <html>   
  3.   <head></head>   
  4.   <body>   
  5.     <a href="news.do?option=globe">国际新闻</a><br>   
  6.     <a href="news.do?option=inner">国内新闻</a><br>   
  7.   </body>   
  8. </html>  

写完JSP页面,我们接着要写ACTION了,如下:

Code:
  1. package myclass.action;   
  2.   
  3. import javax.servlet.http.HttpServletRequest;   
  4. import javax.servlet.http.HttpServletResponse;   
  5. import myclass.from.LoginActionForm;   
  6. import org.apache.struts.action.ActionForm;   
  7. import org.apache.struts.action.ActionForward;   
  8. import org.apache.struts.action.ActionMapping;   
  9. import org.apache.struts.actions.DispatchAction;   
  10.   
  11. /*  
  12.  * 用于接收 ActionServlet转发过来的请求  
  13.  */  
  14. public class NewAction extends DispatchAction{   
  15.     public ActionForward globe(   
  16.             ActionMapping mapping,   
  17.             ActionForm form,   
  18.             HttpServletRequest request,   
  19.             HttpServletResponse response)   
  20.             throws Exception {   
  21.             System.out.println("国际新闻");   
  22.                 return null;       
  23.     }   
  24.     public ActionForward inner(   
  25.             ActionMapping mapping,   
  26.             ActionForm form,   
  27.             HttpServletRequest request,   
  28.             HttpServletResponse response)   
  29.             throws Exception {   
  30.             System.out.println("国内新闻");    
  31.             return null;   
  32.     }   
  33. }   

写完了,ACTION后,最后就是配置文件了:

Code:
  1. <action-mappings>  
  2.          <action path="/news" type="myclass.action.NewAction" parameter="option">  
  3.       </action-mappings>  

这样就可以在一个ACTION里面处理两个不同的请求了,值得注意的是,这里的ACTION方法继承的父类应要变为DISPATCHACTION。

最后是:Struts的国际标准化中资源文件的使用与<html><bean>标签的使用

在使用资源文件进行显示中文时,需要将中文转换成二进制码:

username=/u5f90/u674e/u576a/u4e8b/u8ff9
button1=/u63d0/u4ea4
button2=/u53d6/u6d88

然后通过下面的JSP来显示:

Code:
  1. <%@ page language="java" pageEncoding="UTF-8"%>  
  2. <!--标签信息 一定要写-->  
  3. <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>  
  4. <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>  
  5. <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>  
  6. <%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %>  
  7. <html:html>  
  8.   <head>  
  9.     <title>bean.jsp</title>  
  10.   </head>  
  11.   <body>  
  12.   <bean:message key="username"/>  
  13.   <bean:message key="introduce"/><br>  
  14.   <input type="button" value="<bean:message key="button1"/>">  
  15.   <input type="button" value="<bean:message key="button2"/>">  
  16.   </body>  
  17. </html:html>  

通过读取资源文件的方法,我们可以实现网页的国际化,就是网页可以显示不同的文字,可以有中文,英文等。

最后是<html><bean><login>标签的使用,先声明这里的标记是struts里面带的,它的写法将会变成<html:html>等

先来使用<html>来写一个简单的登录页面;

Code:
  1. <%@ page language="java" pageEncoding="UTF-8"%>  
  2. <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>  
  3. <html:html>  
  4. <head>  
  5. <tilte>登录页面<tilte>  
  6. <head>  
  7. <div>  
  8. <html:form action="login">  
  9. <table>  
  10. <tr>用户名:<html:text property="username"></html:text></tr>  
  11. <tr>密码:<html:password property="userpassword"></html:password></tr>  
  12. <tr><html:submit>登录</html:submit><html:reset>重置</html:reset></tr>  
  13. <table>  
  14. </html:form>  
  15. <div>  
  16. </html:html>  

再来使用<bean>来写一个简单的测试页面;

Code:
  1. <%@ page language="java" pageEncoding="UTF-8"%>  
  2. <%@ page import="myclass.from.LoginActionForm,java.util.*"%>  
  3. <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>  
  4. <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>  
  5. <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>  
  6. <%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %>  
  7.   
  8. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  9. <html:html>  
  10.   <head>  
  11.     <title>bean.jsp</title>  
  12.   </head>  
  13.   <body>  
  14.   <bean:message key="username"/>  
  15.   <bean:message key="introduce"/><br>  
  16.   <input type="button" value="<bean:message key="button1"/>">  
  17.   <input type="button" value="<bean:message key="button2"/>">  
  18.   <bean:define id="loginname" value="liping" ></bean:define><br>  
  19.   el:${loginname}<br>  
  20.   <bean:write name="loginname" /><br>  
  21.   <%   
  22.   LoginActionForm laf=new LoginActionForm();   
  23.   laf.setUsername("dsfjdls");   
  24.   laf.setUserpassword("fdsfds");   
  25.   session.setAttribute("laf",laf);   
  26.      
  27.   List list=new ArrayList();   
  28.   list.add("fdsfdjs");   
  29.   list.add("fdsfdjs");   
  30.   list.add("fdsfdjs");   
  31.   list.add("fdsfdjs");   
  32.   list.add("fdsfdjs");   
  33.   list.add("fdsfdjs");   
  34.   list.add("fdsfdjs");   
  35.   session.setAttribute("list",list);   
  36.    %>  
  37.    el:${laf.username}---${laf.userpassword}<br>  
  38.    bean:<bean:write name="laf" property="username"/><bean:write name="laf" property="userpassword"/><br>  
  39.   <bean:size id="length" name="list" scope="session"/>  
  40.    el:${length }<br>  
  41.    bean:<bean:write name="length"/>  
  42.   </body>  
  43. </html:html>  

最后使用<logic>来写几个简单的测试页面;

Code:
  1. <%@ page language="java" pageEncoding="UTF-8"%>  
  2. <%@ page import="myclass.from.LoginActionForm,java.util.*"%>  
  3. <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>  
  4. <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>  
  5. <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>  
  6. <%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %>  
  7.   
  8. <html:html>  
  9.   <head>  
  10.     <title>bean.jsp</title>  
  11.   </head>  
  12.   <body>  
  13.   <%   
  14.   LoginActionForm laf=new LoginActionForm();   
  15.   laf.setUsername("我是一粒小黄豆");   
  16.   laf.setUserpassword("fdsfds");   
  17.      
  18.   LoginActionForm laf1=new LoginActionForm();   
  19.   laf1.setUsername("我是一棵小草");   
  20.   laf1.setUserpassword("fdsfds");   
  21.      
  22.   LoginActionForm laf2=new LoginActionForm();   
  23.   laf2.setUsername("我是一只小小鸟");   
  24.   laf2.setUserpassword("fdsfds");   
  25.      
  26.   List list=new ArrayList();   
  27.   list.add(laf);   
  28.   list.add(laf1);   
  29.   list.add(laf2);   
  30.     
  31.   session.setAttribute("list",list);   
  32.    %>  
  33.  <logic:iterate id="form" name="list" scope="session">  
  34.  <font size="10" color="green">${form.username }--${form.userpassword }</font><br>  
  35.  </logic:iterate>  
  36.   </body>  
  37. </html:html>  

 

Code:
  1. <%@ page language="java" pageEncoding="UTF-8"%>  
  2. <%@ page import="myclass.from.LoginActionForm,java.util.*"%>  
  3. <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>  
  4. <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>  
  5. <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>  
  6. <%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %>  
  7.   
  8. <html:html>  
  9.   <head>  
  10.     <title>bean.jsp</title>  
  11.   </head>  
  12.   <body>  
  13.   <%   
  14.   List list=new ArrayList();   
  15.   list.add("我是一粒小黄豆!");   
  16.   list.add("fdsfdjs");   
  17.   list.add("fdsfdjs");   
  18.   list.add("fdsfdjs");   
  19.   list.add("fdsfdjs");   
  20.   list.add("fdsfdjs");   
  21.   list.add("fdsfdjs");   
  22.   session.setAttribute("list",list);   
  23.    %>  
  24. <logic:present name="list" scope="session">  
  25. <logic:iterate id="str" name="list" scope="session">  
  26. <font size="10" color="green">${str}</font><br>  
  27. </logic:iterate>  
  28. </logic:present>  
  29. <logic:notPresent name="list1" scope="session">  
  30. list1作用域不存在。   
  31. </logic:notPresent>  
  32.   </body>  
  33. </html:html>  

今天的学习就到此结束了,晚上准备把struts的标签熟悉一下,明天继续学习该框架的其他内容。