首页 > 代码库 > 【java开发系列】—— struts2简单入门示例
【java开发系列】—— struts2简单入门示例
上篇推荐:JDK安装
前言
最近正好有时间总结一下,过去的知识历程,虽说东西都是入门级的,高手肯定是不屑一顾了,但是对于初次涉猎的小白们,还是可以提供点参考的。
struts2其实就是为我们封装了servlet,简化了jsp跳转的复杂操作,并且提供了易于编写的标签,可以快速开发view层的代码。
过去,我们用jsp和servlet搭配,实现展现时,答题的过程是:
1 jsp出发action
2 servlet接受action,交给后台class处理
3 后台class跳转到其他的jsp,实现数据展现
现在有了struts2,实现过程变为
1 jsp出发action
2 struts2拦截请求,调用后台action
3 action返回结果,由不同的jsp展现数据
下面我们看下,需要的jar包
前面两个是apache commons的jar包,暂且忽略
freemarker提供了另一种展现方式
ognl提供了OGNL表达式
struts2-core提供struts2核心包
xwork-core由于struts2很多事基于webwork的,因此也需要这个的核心包
我们提供了三个jsp
登陆界面login.jsp
1 <%@ page language="java" contentType="text/html; charset=GBK" 2 pageEncoding="GBK"%> 3 <%@taglib prefix="s" uri="/struts-tags"%> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=GBK"> 7 <title><s:text name="loginPage"/></title> 8 </head> 9 <body>10 <s:form action="login">11 <s:textfield name="username" key="user"/>12 <s:textfield name="password" key="pass"/>13 <s:submit key="login"/>14 </s:form>15 </body>16 </html>
登陆成功界面welcome.jsp
<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%><%@taglib prefix="s" uri="/struts-tags"%><html><head> <title><s:text name="succPage"/></title><meta http-equiv="Content-Type" content="text/html; charset=GBK"></head><body> <s:text name="succTip"> <s:param>${sessionScope.user}</s:param> </s:text><br/></body></html>
登陆失败界面error.jsp
<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%><%@taglib prefix="s" uri="/struts-tags"%><html><head> <title><s:text name="errorPage"/></title> <meta http-equiv="Content-Type" content="text/html; charset=GBK"></head><body> <s:text name="failTip"/></body></html>
当login.jsp触发action时,就会向后抬发送login.action的请求,这个请求被后台拦截,交给struts.xml中配置的action处理
1 <?xml version="1.0" encoding="GBK"?> 2 <!DOCTYPE struts PUBLIC 3 "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN" 4 "http://struts.apache.org/dtds/struts-2.1.7.dtd"> 5 <struts> 6 <!-- 指定全局国际化资源文件 --> 7 <constant name="struts.custom.i18n.resources" value="mess"/> 8 <!-- 指定国际化编码所使用的字符集 --> 9 <constant name="struts.i18n.encoding" value="GBK"/>10 <!-- 所有的Action定义都应该放在package下 -->11 <package name="test" extends="struts-default">12 <action name="login" class="com.test.action.LoginAction">13 <result name="error">/error.jsp</result>14 <result name="success">/welcome.jsp</result>15 </action>16 </package>17 </struts>
下面是LoginAction的代码,可以看到成功登陆后,程序把username写入session中。以便于我们在welcome.jsp中利用${sessionScope.user}取得名字
1 package com.test.action; 2 3 import com.opensymphony.xwork2.ActionContext; 4 import com.opensymphony.xwork2.ActionSupport; 5 6 public class LoginAction extends ActionSupport { 7 private String username; 8 private String password; 9 10 public String getUsername() {11 return username;12 }13 14 public void setUsername(String username) {15 this.username = username;16 }17 18 public String getPassword() {19 return password;20 }21 22 public void setPassword(String password) {23 this.password = password;24 }25 26 public String execute() throws Exception {27 if (getUsername().equals("xingoo") && getPassword().equals("123")) {28 ActionContext.getContext().getSession().put("user", getUsername());29 return SUCCESS;30 }else{31 return ERROR;32 }33 }34 }
这里还要两个国际化文件,
mess.properties
loginPage=loginPageerrorPage=errorPagesuccPage=succPagefailTip=sorry,login failedsuccTip=welcome{0},login successuser=usernamepass=passwordlogin=login
mess_zh_CN.properties
loginPage=登陆界面errorPage=失败界面succPage=成功界面failTip=对不起,您不能登录!succTip=欢迎,{0},您已经登录!user=用户名pass=密 码login=登陆
登陆界面
登陆成功
登陆失败
【java开发系列】—— struts2简单入门示例
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。