Struts2小练习(eclipse)

使用Struts2框架实现一个登录子系统,具体要求如下:

  1. 不连接数据库,自定义登录合法条件,能进行登录的提示和跳转。
  2. 能够做基本的数据为空校验。
  3. 使用Struts2的标签库。
  4. 使用国际化和资源文件。
  5. 请以学号后3位命名系统,如“203_1”,并对系统使用的技术源码和各界面结果进行截屏,运行结果要保留地址栏,贴图到作业中,附件中提交系统源码的压缩文件。
  6. 独立完成代码,截图清晰准确

创建项目并配置一个Struts2框架
1.创建项目
File->new->Dynamic Web Project->给web项目命名(HelloStruts2Action)->next->next->勾选Generate web.xml deployment descriptor->finish
2.web.xml配置
Struts2小练习(eclipse)_第1张图片
web.xml代码

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>797_1</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  
  <filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*
  
  
  

3.导入jar包jar包下载
建议下载struts-2.5.22-min-lib.zip (min是此版本的最小核心依赖包)
将下载好的文件解压后打开找到lib文件夹,将lib文件夹里的8个jar包
复制粘贴到所创建项目(eclipse代码存储空间里)的文件夹下WebContent/WEB-INF/lib里,最后返回eclipse右击项目Refresh(F5)
4.struts2配置
在src目录下右键new一个struts.xml文件
struts.xml代码

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">
    
<struts>
  <constant name="struts.custom.i18n.resources" value="study"/>
  <constant name="struts.i18n.encoding" value="UTF-8" />  <!--国际化配置-->
  
  <package name="default" namespace="/" extends="struts-default">
        <action name="LoginAction" class="com.lx.action.LoginAction">
            <result name="success">success.jsp</result>
            <result name="error">error.jsp</result>   
        </action> 
        
        <action name="ChangelanAction" class="com.lx.action.ChangelanAction">
        <result name="success">login.jsp</result>
        </action>
  </package>

</struts>

题目的实现
项目结构
Struts2小练习(eclipse)_第2张图片
1.编写三个jsp页面(login.jsp、success.jsp、error.jsp)
login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags"%><!-- Struts2引入仅有的一个标签库s -->
<!-- 不加此句会出现Unknown tag (s:text).警告 -->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登陆</title>
</head>
<body>

   <form action="LoginAction" method="post" >    
<!--  
用户名:<input type="text" name="userName" required><br>
密码:<input type="password" name="passWord" required><br> 
<input type="submit" value="登录">
-->
       <s:text name="form.username"/> //国际化
       <input type="text" name="userName" required><br>  
       
       <s:text name="form.password"/>
        <input type="password" name="passWord" required><br>
        
        <input type="submit" value=".submit" />"/><br>
   </form>
    <a href="ChangelanAction?request_locale=zh_CN">简体中文</a>
    <a href="ChangelanAction?request_locale=en_US">English</a>
</body>
</html>

success.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<%@ taglib prefix="s" uri="/struts-tags"%>  <!-- 引入struts2的标签库 -->

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>欢迎页面</title>
</head>
<body>
    <s:property value="userName"/>,您好!欢迎登陆 
    <!--使用sturts2标签s:property访问action值栈中的普通属性-->
    
</body>
</html>

error.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登陆失败</title>
</head>
<body>
              用户名或密码错误,请重新登录!
    <h1><a href="login.jsp">点击跳转至登陆页面……</a></h1>
</body>
</html>

2.编写2个Action页面(LoginAction、ChangelanAction)
LoginAction.java

package com.lx.action;

import com.opensymphony.xwork2.ActionSupport;


public class LoginAction extends ActionSupport{
    
    /*值栈:页面可以直接获取*/
    String userName;
    String passWord;
    
    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()
    {
         if(userName.equals("admin") && passWord.equals("12345"))
             return  "success";
         else 
             return "error";
     }
}

ChangelanAction.java
借鉴代码来源

package com.lx.action;

import java.util.Locale;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;


public class ChangelanAction extends ActionSupport{

    public String execute() throws Exception {
        //获得本地默认的语言环境
        Locale locale=Locale.getDefault();
        //存入到一个session变量中。"WW-TRANS-I18N-LOCALE"为固定写法
        ActionContext.getContext().getSession().put("WW-TRANS-I18N-LOCALE", locale);
        return SUCCESS;
    }
}

3.编写两个国际化页面(study_en_US.properties、study_zh_CN.properties)
study_en_US.properties

form.username=userName:
form.password=passWord:
form.submit=submit

study_zh_CN.properties(等号后输入汉字自动转换成对应UTF-8编码)
(如果不行的话点击properties然后输入汉字,source里的代码就会自动转换成汉字对应UTF-8编码)
Struts2小练习(eclipse)_第3张图片

form.username=\u7528\u6237\u540D:
form.password=\u5BC6\u7801:
form.submit=\u63D0\u4EA4

运行截图
Struts2小练习(eclipse)_第4张图片
Struts2小练习(eclipse)_第5张图片
Struts2小练习(eclipse)_第6张图片
Struts2小练习(eclipse)_第7张图片

你可能感兴趣的:(Struts2小练习(eclipse))