struts2入门
来源:互联网 发布:nba2016数据 编辑:程序博客网 时间:2024/06/11 03:07
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展现数据
登陆界面login.jsp
<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%><%@taglib prefix="s" uri="/struts-tags"%><html><head><meta http-equiv="Content-Type" content="text/html; charset=GBK"><title><s:text name="loginPage"/></title></head><body><s:form action="login"> <s:textfield name="username" key="user"/> <s:textfield name="password" key="pass"/> <s:submit key="login"/></s:form></body></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处理
<?xml version="1.0" encoding="GBK"?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN" "http://struts.apache.org/dtds/struts-2.1.7.dtd"><struts> <!-- 指定全局国际化资源文件 --> <constant name="struts.custom.i18n.resources" value="mess"/> <!-- 指定国际化编码所使用的字符集 --> <constant name="struts.i18n.encoding" value="GBK"/> <!-- 所有的Action定义都应该放在package下 --> <package name="test" extends="struts-default"> <action name="login" class="com.test.action.LoginAction"> <result name="error">/error.jsp</result> <result name="success">/welcome.jsp</result> </action> </package></struts>
下面是LoginAction的代码,可以看到成功登陆后,程序把username写入session中。以便于我们在welcome.jsp中利用${sessionScope.user}取得名字
public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String execute() throws Exception { if (getUsername().equals("xingoo") && getPassword().equals("123")) { ActionContext.getContext().getSession().put("user", getUsername()); return SUCCESS; }else{ return ERROR; } }}
这里还要两个国际化文件,
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=登陆
阅读全文
3 0
- Struts2入门
- struts2 入门
- struts2入门
- struts2-入门
- struts2入门
- struts2入门
- Struts2入门
- struts2入门
- Struts2入门
- struts2 入门
- struts2-入门
- Struts2入门
- struts2 入门
- struts2入门
- Struts2入门
- struts2入门
- Struts2入门
- Struts2入门
- HTML中src、href的区别
- Java 方法形参放类变量案例
- web程序设计
- 1002 A+B(基本输入输出2) C
- linux--tar命令
- struts2入门
- java:对输入数据的异常处理
- 【队内胡策 11.1】 T3
- 安装php_redis扩展(Windows环境下)
- 使用动态规划法解决0/1背包问题
- 多线程与多进程(二)---线程优先级与线程安全
- Spring注解大全
- nested exception is org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)
- Jupyter Notebook打开时报错的问题解决办法