博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【java开发系列】—— struts2简单入门
阅读量:6637 次
发布时间:2019-06-25

本文共 2979 字,大约阅读时间需要 9 分钟。

前言

  最近正好有时间总结一下,过去的知识历程,虽说东西都是入门级的,高手肯定是不屑一顾了,但是对于初次涉猎的小白们,还是可以提供点参考的。

  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  5  6 
7 <s:text name="loginPage"/> 8 9 10
11
12
13
14
15 16

登陆成功界面welcome.jsp

<%@ page language="java" contentType="text/html; charset=GBK"    pageEncoding="GBK"%><%@taglib prefix="s" uri="/struts-tags"%>    <s:text name="succPage"/>
${sessionScope.user}

登陆失败界面error.jsp

<%@ page language="java" contentType="text/html; charset=GBK"    pageEncoding="GBK"%><%@taglib prefix="s" uri="/struts-tags"%>    <s:text name="errorPage"/>    

  当login.jsp触发action时,就会向后抬发送login.action的请求,这个请求被后台拦截,交给struts.xml中配置的action处理

1 
2 5
6
7
8
9
10
11
12
13
/error.jsp
14
/welcome.jsp
15
16
17

下面是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=登陆

  登陆界面

  登陆成功

  登陆失败

本文转自博客园xingoo的博客,原文链接:,如需转载请自行联系原博主。
你可能感兴趣的文章
AD中for 语句批量建立用户【转】
查看>>
【VMCloud云平台】私有云门户第一朵Web云(四)
查看>>
基于开源技术的上网行为管理实现方案
查看>>
AWS云计算平台工作使用中的心得
查看>>
Exchange 2013部署系列之(一)系统要求
查看>>
团购网站为谁做了嫁衣?
查看>>
Windows Server 2012 之Hyper-v初识
查看>>
Photoshop制作一只可爱的卡通小鸟
查看>>
看电影“刺客聂隐娘”前必须了解的知识(绝无剧透)
查看>>
观Citrix最新官方发布评测报告有感-外行看热闹,内行看门道
查看>>
IT女生的2011经历
查看>>
Swing Threading的限制
查看>>
用户直销分析应用---如何使用RFM分析最具价值的网游付费用户
查看>>
Android应用开发之Android平台向web应用提交信息
查看>>
void及void指针含义的深刻解析
查看>>
[转]条码扫描二维码扫描——ZXing android 源码简化
查看>>
css 调试技巧
查看>>
Delphi 框架Frames的使用
查看>>
基础学习笔记之opencv(15):离散傅里叶变换
查看>>
PHP实现mb_substr函数
查看>>