Struts logic:iterate

2008.12.17 / 标签: ,,, / 分类: J2EE技术

不想写Java中的for循环?还想用标签进行数据迭代?让Struts中的login:iterate标签来帮你吧!这里有一个简单的实例,你是否能够学会呢?

阅读全文>>

Struts bean:write format

2008.12.14 / 标签: ,,, / 分类: J2EE技术
Sofa

在[

Struts bean:write filter

] 一文中我们了解了Struts中bean:write标签的filter属性。接下来我们来看看如何使用Struts中bean:write的format属性。
首先我们来看看如何使用format属性进行格式化输出。我们在request中放入当前时间。
request.setAttribute("time", new Date());
在JSP页面中,倘若我们不使用format属性进行格式化,而直接使用<bean:write name="time" scope="request"/>进行输出,其输出结果将是:
Sun Dec 14 15:38:51 CST 2008
然而我们通常不习惯于使用这种格式,如果我们希望输出这种格式2008-12-14 15:41:12呢?很简单!我们将其代码修改成这样:
<bean:write name="time" scope="request" format="yyyy-MM-dd HH:mm:ss"/>
这里format属性中的内容我想不需要解释吧?O(∩_∩)O~
时间可以格式化,那么数字呢?
我们向request中放入圆周率request.setAttribute("n", 3.14159265358979323846)。若直接使用<bean:write name="n" scope="request"/>进行输出,那结果肯定是原封不动的3.14159265358979323846了。如果我们希望小数点后保留4位呢?也很简单!代码修改为:
<bean:write name="n" scope="request" format="#.####" />
再想想,如果我们放进去的是3.14呢?我们输出却要小数点后保留4位,不足4位用0补上呢?用上面的方式我们得到将还是3.14,这又该怎么改呢?
It’s very easy!!一个非常小的改动:
<bean:write name="n" scope="request" format="0.0000" />或者<bean:write name="n" scope="request" format="#.0000" />
有人会发现这里的“#”与“0”好像通用,于是写成<bean:write name="n" scope="request" format="#.##00" />,认为这样也可以,究竟行不行自己动手试试吧。 

Struts bean:write filter

2008.12.13 / 标签: , / 分类: J2EE技术

Struts中的<bean:write name="neeke" scope="request" />标签相当于<%=request.getAttribute("neeke")%>,当然这里也不一定是request,也可能是session等,其中neeke是属性的名字。

首先我们来看一看action中的代码。

 
  1. package cn.ineeke.struts;
  2.  
  3. import javax.servlet.http.HttpServletRequest;
  4. import javax.servlet.http.HttpServletResponse;
  5.  
  6. import org.apache.struts.action.Action;
  7. import org.apache.struts.action.ActionForm;
  8. import org.apache.struts.action.ActionForward;
  9. import org.apache.struts.action.ActionMapping;
  10.  
  11. public class BeanWriteAction extends Action {
  12.  
  13.     @Override
  14.     public ActionForward execute(ActionMapping mapping, ActionForm form,
  15.             HttpServletRequest request, HttpServletResponse response)
  16.             throws Exception {
  17.             request.setAttribute("myblog""<a href=’http://www.ineeke.com’>http://www.ineeke.com</a>");
  18.             return mapping.findForward("success");
  19.     }
  20.  
  21. }

上面这段代码的作用很简单,就是向request中存值,接着跳转到成功页面。再来看看成功页的代码是什么样的。

 
  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
  2. <%@ taglib prefix="bean" uri="http://struts.apache.org/tags-bean" %>
  3. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  4. <html>
  5.   <head> 
  6.     <title>Struts标签BeanWrite学习</title>
  7.   </head>
  8.   <body>
  9.     <bean:write name="myblog" scope="request"/>
  10.   </body>
  11. </html>

在上面的代码中,我们使用<bean:write>标签从request中将myblog取出并显示在网页上。此时是按照文本格式直接输出的,而我们存放的时候是带HTML代码的,如果我们想让它以超级链接的形式显示在网页中呢?
其实这很简单,此标签有一个filter属性,其意在于是否以文本格式输出,默认情况下其值为true,所以我们只需将其改为如下所示即可。
<bean:write name="myblog" scope="request" filter="false"/>

Struts的工作原理

2008.11.24 / 标签: ,,, / 分类: J2EE技术
Sofa

昨天写了那个[struts工作流程分析] 感觉有点乱,今天整理了一下,当然不是我自己研究出来的,我喜欢看完技术资料后用自己所理解的意思去表述一遍,当然我有时也会原文转来。今天又增加了一个栏目《系统漏洞》,这里的漏洞就更不可能是我发现的了,都是直接转来的。博客是不是必须纯原创我才不去管它,我只关注和学习我所感兴趣的。

struts的工作原理可分为如下8步。

1.读取配置(初始化ModuleConfig对象)
Struts框架总控制器(ActionServlet)是一个Servlet,在web.xml中被配置成一个自动启动的Servlet。读取配置文件struts-config.xml的配置信息,为不同的Struts模块初始化相应的ModuleConfig对象。

2.用户请求
用户提交表单或调用URL向WEB应用程序服务器提交一个请求,请求的数据用HTTP协议上传给WEB服务器。

3.填充FormBean
(*.do请求)从ActionConfig中找出对应该请求的Action子类,如有对应的Action且这个Action又一个相应的ActionForm,ActionForm被实例化并用HTTP请求的数据填充其属性,并保存在ServletContext中,这样他们就可以被其它Action对象或JSP调用。如果没有对应的Action,控制器则直接转发给JSP或静态页面。

4.派发请求
控制器根据配置信息ActionConfig将请求派发到具体的Action,相应的FormBean一并传给这个Action的execute()方法。

5.处理业务
Action一般只包含一个execute方法,它负责执行相应的业务逻辑。执行完毕后返回一个ActionFoward对象,控制器通过该ActionFoward对象来进行转发工作。

6.返回响应
Action根据业务处理的不同结果返回一个响应对象给总控制器,该目标响应对相对应一个具体的JSP页面或另一个Action。

7.查找响应
总控制器根据业务功能Action返回的目标响应对象找到对应的资源对象,通常是一个具体的JSP页面。

8.响应用户
JSP将结果展现给用户。

什么是Struts

2008.08.20 / 标签: ,,, / 分类: J2EE技术
Sofa

Struts是骨架、支柱的意思。Struts框架的目的也是提供一个实现MVC模式的应用程序骨架。
它出身显赫,来自Apache。Apache是一个著名的开源组织,其下有很多广泛应用的开源项目。我们一直在使用的Tomcat就是他们的一个子项目。Apache在Java世界具有举足轻重的地位。
基于Struts开发的应用由3类组建构成:控制器组件、模型组件和试图组件。
控制器组件包括ActionServlet,是Struts的核心控制器,还包括自定义的Action类,代表客户的一个操作,自定义的Action类继承自Struts提供的org.apache.struts.action.Action。
模型组件并不是由Struts提供的,一般由普通的接口和JavaBean充当,需要我们自己编码实现。
试图组件一般由JSP实现,还包括自定义的ActionForm类和Struts标签。自定义的ActionForm类用于封装request中的数据,Struts可以将request中的数据自动填充到ActionForm类中,以避免繁琐的request.getParameter()和类型转换代码。自定义的ActionForm类继承自Struts提供的org.apache.struts.action.ActionForm。Struts还提供了一系列自定义标签以简化页面的编码。
ActionForm在系统启动的时候加载struts-config.xml配置文件。struts-config.xml配置文件中包含与Action、ActionForm、页面转发等相关的配置信息。
可见,Struts只是一个应用程序的“半成品”,但已经约束了在其基础上构建应用程序的规则,并给我们的代码开发工作提供了便利。

为什么使用Struts

2008.08.19 / 标签: ,, / 分类: J2EE技术
Sofa

古语有云“没有绳子的世界是乱世”。JSP、Servlet和JavaBean技术的出现给我们构建强大的企业应用系统提供了可能。在此之上,我们还需要一个规则,一个把这些技术有效的组织起来,让系统繁而不乱的规则,这就是框架。Struts应运而生,是最早的开源框架之一,而且很快成为实际标准,是当前应用最广泛的Java Web应用开发框架。
在Struts中,可以通过struts-config.xml配置文件配置Action得访问路径,还提供了ActionForm,自动获取Request中的数据,不再需要反反复复的进行request.getParameter(),然后小心翼翼的转换类型。Struts还提供了标签库,可以方便的构建页面并获得额外的便利。作为一个成熟而完整的框架,Struts几乎处处都帮我们做好了贴心安排。

无觅相关文章插件,快速提升流量