struts2是一个基于MVC设计模式的Web应用框架。他封装、简化了很多原生功能。
我常用它实现 jsp 与 java 代码的数据交换。一般使用servlet进行数据交换的,然而代码一多就不直观了,这时候推荐使用struts2或者其他框架,代替servlet中的get/post方法。
目录
简单案例(了解过程与配置)
Struts2的通用配置
实际例子(了解Jsp与Java代码的数据传递)
一、jsp传递数据给java
二、java传递数据给jsp
小结
一、jsp->java
二、java->jsp
小改进(选看)
使用struts2访问 hellojava.java,如果java文件返回信息"success"则跳转到hellojsp.jsp欢迎界面。
(1) 首先写hellojava.java:
为了方便代码的管理我将hellojava.java放到action包下(包名随意)。
位置:项目->Java Resources->src->action(新建包)->hellojava.java
public class hellojava {
public String execute(){
return "success";
}
}
(2) 然后再写hellojsp.jsp:
位置:项目->WebContent->hellojsp.jsp
My first strusts is running success!
(3) 配置struts2信息。
Struts2的通用配置
任何一个使用到struts2框架的项目代码一定有以下配置:
1、导入核心包(本例中只导入最最基本的八个struts2的库文件)
位置:项目->WebContent->WEB-INF->lib
2、web.xml的配置编写(一般这么写,特殊需求除外)
位置:项目->WebContent->WEB-INF->lib->web.xml
Struts2Demo struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter struts2 /* index.html index.htm index.jsp default.html default.htm default.jsp
3、struts.xml的配置编写(即“结果视图类型”)
位置:项目->Java Resources->src->struts2.xml(注意文件位置~!和web.xml不同)
/hellojsp.jsp 【解释】其中最主要修改的地方是
标签内的内容。 如字面意思,该标签定义了一个action,这个action可以访问的class是“action.hellojava”(其中action是包),action的名字为helloword,这个用于我们访问java文件的入口。而访问方法method为execute()方法(默认的也是execute()),也可以设置为其他。
表示当返回值为success时,跳转到hellojsp.jsp页面。 (由于result默认为success,所以该句代码也等价于
/hellojsp.jsp )
【输入地址】:http://localhost:8080/自己的项目名/helloword
【运行结果】:
一、用户在登录界面login.jsp输入自己的信息,传递信息到LoginFormAction.java进行信息匹配。
二、如果信息匹配成功(即登陆成功,返回为success)则跳到 welcom.jsp 界面,并显示 “欢迎你!xx(用户名)”。
失败(返回值为 input)则回 login.jsp 页面。
(1)首先根据题意,更改我们的struts.xml。
为了方便代码的管理我仍然将LoginFormAction.java放到action包下。
struts.xml
/welcom.jsp
/login.jsp
其中名为login的action,是进行登录信息匹配的action.
(2)login.jsp
这里的重点是已经定义好了