必发365bifa0000struts 初体验

by admin on 2019年2月2日

1. 什么是Struts2
struts2是以WebWork的设计思想为基本,吸收了Struts1的片段有点,建立了合营WebWork和Struts1的MVC框架。

必发365bifa0000,改 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类型,它可以采用工具康芒斯-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,物件太多了)

下圖是這次運用到作法萨姆ple Chart。

必发365bifa0000 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);

 

 

以上就大功告成上列萨姆ple 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地图