Struts 2 Tutorial

Introduction to Struts 2

Pattern is the way you can architect your application

Framework provides foundation classes and libraries

Gets us strated quickly

leverage industry best practices

Give us pre-built classed from MVC that we use and extend

 

How it works

Handle input parameters;                                           -------->Interceptors

Route using XML config                                             -------->Structs XML

Business services / model need to be in place             ------->Action Class callling business services

View and tag libraries                                                -------->JSP

 

Setting Up

common-fileupload

javaassitant

commons-io(API)

ogni

struts2-core

freeemaker

xwork-core

Writing a Struts 2 Application

 

How do we let eclipse know to copy the related jar/library files to be in the web-inf/lib folder? windows->properties->development assemblely->java build path entries-->maven dependecies/or customized libraries.

   1) struts XML similar with servlets; take the input URL to output ACTION classes and JSPs

   2) Action Class

   3) JSP

There are no doget() and dopose() methods for Struts which be part of servlet ; Default method of Action class is execute();

   1 Structs.xml begins with <struts> and then followed with <package>; after that <action> tag possiblely with a child tag of <result name="success"> be mapped from    within action class;

   2 Create a action class with execute() overidden; same action class may need to show different JSPs

   3 Create a jsp and map it to the action class within the struts.xml; JSP displayed depends on the return value/codes,. i.e. success or failure.

   4 Then configure the web.xml by adding a <filter> <filter-name>struts<filter-calss>:org.apaceh.struts; <filter mapping><filter-name><url-pattern> .

   5 URL by default should be ended with .action.

Understanding Namespaces   

It could be configured from within the <package> tag  in the struts.xml file by adding namespace proeperty.

for e.g., <package name="default" namespace="homework" extends="struts-default"

http://localhost:8080/webapp/getdone.action ------>http://localhost:8080/webapp/homework(actual namespace)/getdone.action

A Tag And A Business Service

Action class will call business service this time;

service should be just interfaces and will be called using implemented subclass

what happens behind the scene of a tag: to print the string from a action to the JSPs. in struts, the session will not be used which is useful for Servlet and JSPs and be replaced with a class level field of action class. Struts use the tag in the JSPs with <%@ taglib prefix="s" uri:/struts-tags"%> <s:property value="action class level field" /> in which way we do not have to worry about servlet scope, session and etc.. this is a good way to wire up the service class, actions and JSPs.

 

The ValueStack

 

how servlets and JSP works? each thread serves independent requst. as it is based, it could not contain a member variables given the thread safe perspective. instead, a req or session object is created for each thread request for data transfering.

 

how does struts work around it?  new action objects/instances(instead of threads) which contain the meber variables are created for each requests.

So value stack is used to store the action instance.

PS: ease the way to do things; in a common/tranditional sense; there are a few tricks you need to refer to;

 

-------------------------------------------------------------------Ends@T07 and to be continued---------------------------------

 

............................ , of the execution() methods.

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值