Struts2入门(一)
来源:互联网 发布:家具三维设计软件 编辑:程序博客网 时间:2024/05/16 07:38
Struts2入门(一)
看这篇文章之前一定要看JSP以及Servlet相关的知识,重点理解servlet、mvc以及配置xml,还有,要有操作myeclipse的基础。掌握Struts2的最基本的概念以后,然后开始搭建开发环境、配置xml以及编写Action类,这样做就能更好的入门。
第一步:下载Struts2包:struts-2.3.4.1,然后解压,找lib目录下的一些jar,如下:
第二步:打开MyEclipse2017,新建一个Web Project,命名为:firstStruts2
第三步:在firstStruts2上面右击,找到“Configure Facets…”,然后找到“Install ApacheStruts (2.x) Facet”,如下图所示,最后把刚才找到的一些jar复制到firstStruts2/WebRoot/WEB-INF/lib下
第四步:运行试试看,是否能显示“This is my JSP page.”,若能显示,说明以上的搭建成功。(PS:搭建成功后,把index.jsp删除掉)
第五步:先在firstStruts2/src目录下找到struts.xml,然后配置,在<struts></struts>之间写一些代码,具体配置代码如下,
<!--设置Web应用程序的编码集 -->
<constant name ="struts.i18n.endcoding" value="UTF-8"></constant><!--使用常量 -->
<constant name ="struts.locale" value="zh_CN"></constant><!--使用常量 -->
<!--定义 firstStruts2包,在这个包中定义Action类-->
<package name="firstStruts2" extends="struts-default">
<!-- 定义register,用于处理用户注册请求 -->
<action name="register" class="com.examp.ch18.RegAction1">
<!-- 如果注册成功,返回success.jsp -->
<result name="success">success.jsp</result>
<!-- 如果输入数据有错误,返回register.jsp -->
<result name="input">register.jsp</result>
</action>
</package>
先找到<action></aciton>,再做分析:
<action name="register" class="com.examp.ch18.RegAction1">
<!-- 如果注册成功,返回success.jsp -->
<result name="success">success.jsp</result>
<!-- 如果输入数据有错误,返回register.jsp -->
<result name="input">register.jsp</result>
</action>
有趣的发现:class为"com.examp.ch18.RegAction1”,这是要我们新建一个Action类(RegAtion1.java,说白了就是带有execute()方法的JavaBean类),RegAtion1.java所在的包就是com.examp.ch18。
第六步:根据上面的分析,在firstStruts2/src目录下new一个class,新建RegAction1.java的步骤如下:
然后自动出现了RegAction1.java:
第七步:打开RegAction1.java,添加用户注册表单对应的一些属性:
package com.examp.ch18;
import java.util.Map;
import java.util.Date;
import com.opensymphony.xwork2.ActionContext;
publicclass RegAction1 {
private String username;
private String password1;
private String password2;
private Date birthday;
}
在空白处右击,然后点击Source → Generate Getters and Setters
全部选上,点击OK
然后自动生成getXxx()方法与setXxx()方法:
public String getUsername() {
return username;
}
public void setUsername(Stringusername) {
this.username =username;
}
public String getPassword1() {
return password1;
}
public void setPassword1(Stringpassword1) {
this.password1 =password1;
}
public String getPassword2() {
return password2;
}
public void setPassword2(Stringpassword2) {
this.password2 =password2;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Datebirthday) {
this.birthday =birthday;
}
最后添加一个方法execute(),execute()就是处理用户请求的方法:
public String execute() throws Exception {
Mapm;//定义Map类型变量 Map m;
if (getPassword1().equals(getPassword2())
&&!getUsername().trim().equals("")) {
m = ActionContext.getContext().getSession();//取得session
m.put("username", getUsername());//将name存入session
return"success";
}else {
return"input";
}
}
RegAction1.java完整代码如下:
package com.examp.ch18;
import java.util.Map;
import java.util.Date;
import com.opensymphony.xwork2.ActionContext;
publicclass RegAction1 {
private Stringu sername;
private String password1;
private String password2;
private Date birthday;
public String getUsername() {
return username;
}
public void setUsername(Stringusername) {
this.username =username;
}
public String getPassword1() {
return password1;
}
public void setPassword1(Stringpassword1) {
this.password1 =password1;
}
public String getPassword2() {
return password2;
}
public void setPassword2(Stringpassword2) {
this.password2 =password2;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Datebirthday) {
this.birthday =birthday;
}
public String execute() throws Exception {
Mapm;//定义Map类型变量 Map m;
if (getPassword1().equals(getPassword2())
&&!getUsername().trim().equals("")) {
m = ActionContext.getContext().getSession();//取得session
m.put("username", getUsername());//将name存入session
return"success";
}else {
return"input";
}
}
}
第八步:创建视图层,显示页面存在于firstStruts2/WebRoot目录下,注册页面register.jsp和注册成功后的返回页面success.jsp
Register.jsp代码如下:
在<body></body>之间加入一些代码:
用户信息注册:<br><hr>
<form action="register.action" method="get">
<table>
<tr><td>用户姓名:<input name="username" type="text"></td></tr>
<tr><td>用户密码:<input name="password1" type="password"></td></tr>
<tr><td>验证密码:<input name="password2" type="password"></td></tr>
<tr><td>用户生日:<input name="birthday" type="text"></td></tr>
<tr><td><input type="submit" value="注册"></td></tr>
</table>
</form>
success.jsp,在<body></body>中加一个代码,如下:
您好!${sessionScope.username},注册成功!
第九步:测试运行
然后在任何浏览器输入:http://localhost:8080/firstStruts2/register.jsp
若两个密码不一致时,则会自动重定向到注册界面。
- Struts2入门(一)
- struts2入门(一)
- Struts2入门(一)
- Struts2入门(一)
- Struts2自学入门(一)
- 【struts2】(一)入门伊始
- Struts2 入门讲解(一)
- struts2入门程序(一)
- 传智Struts2笔记(一)入门
- 传智Struts2笔记(一)入门
- java web(二) struts2入门一
- struts2.2.x入门应用(一)
- Struts2入门初步需掌握(一)
- Struts2学习笔记(一)入门示例
- SSH学习(一)Struts2入门
- Struts2学习(一)---初入门
- Struts2的介绍和入门(一)
- struts2(一)——入门案例
- hdu 1054 Strategic Game 最小顶点覆盖(二分图最大匹配)
- (codeforces) The Great Mixing
- JS的正则表达式实例
- ViewPager刷新无效
- mysql存储过程语法及实例
- Struts2入门(一)
- 进程通信之pipe通信
- jzoj P1663【AHOI2009】维护序列
- 用EM算法求解高斯混合模型
- 获取 request 中 json 参数数据
- 移动端弹出穿透问题(弹出层弹出后body还能滑动)
- mac电脑双开微信的方法
- flask 源码阅读
- JS正则表达式大全