struts 初体验

by admin on 2019年2月2日

1. 什么是Struts2
struts2是以WebWork的安插思想为主导,吸收了Struts1的片段有点,建立了非常WebWork和Struts1的MVC框架。

改 Legend 属性就可以了,只要不难加一个 item 就行了.

1.1 WebWork: 强调系统里面的松耦合,使用拦截器来落实控制。
不依靠于web容器,
从而解决了框架对ServletAPI的牢牢耦合,使得测试更加便民。同时,在显示层扶助更多的视图技术,开发更灵敏。

坐标则是 ChartArea 控制

2. struts的利弊
【优点】
2.1. 贯彻MVC形式,结构清晰,使开发者只关心业务逻辑的完成.
2.2. 有添加的tag可以用
,Struts的标记库(Taglib),如能灵活应用,则能大大升高开发功效。其余,就当下国内的JSP开发者而言,除了利用JSP自带的常用标记外,很少开发协调的号子,或许Struts是一个很好的起源。
2.3.
页面导航.页面导航将是从此的一个前进方向,事实上,这样做,使系统的脉络越发鲜明。通过一个配置文件,即可把握总序列统各部分之间的关联,那对于中期的爱惜有着高度的利益。尤其是当另一批开发者接手那些连串时,那种优势彰显得尤其简明。
2.4. 提供Exception处理体制 .
2.5. 多少库链接池管理
2.6. 支持I18N
【缺点】
2.1
转到显示层时,必要配备forward,每几次转到呈现层,相信半数以上都是直接转到jsp,而关乎到转会,须要配备forward,假使有十个显示层的jsp,必要计划十次struts,而且还不包罗有时候目录、文件变更,需要再度修改forward,注意,每一回修改配置之后,需要重新安顿整个项目,而tomcate那样的服务器,还非得再一次开动服务器,若是工作转移复杂频仍的系统,那样的操作简捷不可想像。现在就是那样,几十众五人同时在线使用大家的系列,大家可以设想一下,烦恼有多大。
2.2 Struts
的Action必需是thread-safe格局,它不过允许一个实例去处理所有的央求。所以action用到的装有的资源都必不可少统一联合,那几个就引起了线程安全的题材。
2.3 测试不方便.
Struts的每个Action都同Web层耦合在共同,那样它的测试保护于Web容器,单元测试也很难落到实处。不过有一个Junit的增添工具Struts
TestCase可以已毕它的单元测试。
2.4 类型的转换.
Struts的FormBean把具有的数码都看作String类型,它能够采取工具Commons-Beanutils举行项目转化。但它的中转都是在Class级别,而且转化的品类是不可配置的。类型转化时的错误音讯再次来到给用户也是越发拮据的。
2.5 对Servlet的依赖过强. Struts处理Action时必须要重视ServletRequest
和ServletResponse,所有它摆脱不了Servlet容器。
2.6
前端表明式语言方面.Struts集成了JSTL,所以它根本运用JSTL的表达式语言来获取数据。但是JSTL的表达式语言在Collection和索引属性方面处理显得很弱。

都好难找.

3. Struts2 的获取
http://struts.apache.org


4. Struts2 的应用

http://www.dotblogs.com.tw/joo3360/archive/2010/10/05/18127.aspx

  • 4.1 确认环境

MS Chart 針對多個Series以及自訂X軸Group樣式

這次接到客戶须求說,要顯示各機台狀況以及顯示機台與站點間X軸Group的顯示,而每個機台又必須區分顏色出來。

沒寫過,所以研商了一下MS Chart怎么着運用。

然後發現ChartType必須使用SeriesChartType.StackedColumn,才能達到一個X軸刻度來重疊Series來顯示(這個我找好久,果然不熟MS
Chart,物件太多了)

下圖是這次運用到作法Sample Chart。

图片 1 

Step.1 必須先動態建立好Series至Chart物件中

01 //先動態產生Series
02 for (int i = 0; i < 8; i++)
03 {
04     Series series = new Series("DATA" + i.ToString());
05     series.Color = Color.FromArgb(rnd.Next() % (255 - 0 + 1) + 0,
06         rnd.Next() % (255 - 0 + 1) + 0,
07         rnd.Next() % (255 - 0 + 1) + 0); //亂數定義Series顏色
08  
09     series.ChartType = SeriesChartType.StackedColumn;
10     this.Chart1.Series.Add(series);
11 }

Step.2 再將各個Series参预資訊。

*注意:因為假設一筆資料都要區分分裂顏色必須各自填入各自的Series。

01 //填入Series資訊       
02         for (int i = 0; i < Chart1.Series.Count; i++)
03         {
04             for (int j = 0; j < Chart1.Series.Count; j++)
05             {
06                 if (i == j)
07                 {
08                     Chart1.Series[i].Points.AddXY(i.ToString(), i * 5);
09                 }
10                 else
11                 {
12                     Chart1.Series[i].Points.AddY(0); //如果不要產生該Point資訊時,就先資訊設為0
13                 }
14             }
15         }

Step.3 再動態加作客製化的X軸。

 

 

1 //X軸作Group設定
2         Chart1.ChartAreas[0].AxisX.CustomLabels.Add(0.5, 4.5, "A", 1, LabelMarkStyle.LineSideMark);
3         Chart1.ChartAreas[0].AxisX.CustomLabels.Add(4.5, 8.5, "B", 1, LabelMarkStyle.LineSideMark);

 

 

Step.4 参加Legend,顯示右方Series資訊列

 

1 //設定Legend
2         Legend legend = new Legend("TEST Legend");
3         legend.Docking = Docking.Right;
4         legend.Alignment = System.Drawing.StringAlignment.Center;
5         Chart1.Legends.Add(legend);

 

 

以上就完了上列Sample Chart

1) 在类型中引入Struts2 jar包
struts2-core xwork-core ognl fremarker javassist commons-fileupload
commons-io Commons-lang
2) 修改工程的web.xml文件,配置过滤器

  • 4.2 代码编写

1)
编写开发处理请求的Action类,并完毕具体的拍卖请求的艺术,该办法必要回到一个字符串类型的结果【action类,
extends ActionSupport】
2) 编写struts.xml文件,对Action举办配置【位于src的根目录下】
3) 编写与Action相关的JSP页面

5. Struts2访问servletAPI对象

  • 5.1
    使用ActionContext类获取ServletAPI对象对应的MAP对

【使用Map对象替代ServletAPI中的HttpServletRequest, HttpSession和
ServletContext】

1) 获得request参数 【get()】
ActionContext ac = ActionContext.getContext();
Map request = (Map)ac.get(“request”);

2) 获取对象的HttpSession对象的Map对象【getSession()】
Map session = ActionContext.getContext().getSession();

3) 获取相应的ServletContext对象的Map对象 【getApplication()】
Map app = ActionContext.getContext().getApplication();

演示: Action页面保存用户名: session.put(“name”,”values”);
         JSP页面获取用户名: ${sessionScope.name}

  • 5.2 struts2 向Action
    注入ServletAPI对象对应的Map对象

 

  • 5.3 与Servlet
    API耦合的走访形式

 

6. Struts 2 标签

标签分为两类: UI标签(UI Tag) 和通用标签 (Generic Tag)
<%@taglib uri=”/struts-tags” prefix=”s” %>

6.1 UI标签: 表单标签、非表单标签、Ajax标签
<s:form></s:form> <s:textfield></s:textfield>
……

6.2 通用标签: 条件标签 <s:if> <s:elseif> <s:else>
迭代标签: <s:iterator>

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图