最近想学习下java的ssh框架,先从Struts2开始吧:
Eclipse Mars.1 Release (4.5.1)
创建的项目文件结构如下图:
有没有人注意到项目有错误,打开index.jsp页面,提示
The superclass “javax.servlet.http.HttpServlet” was not found on the
Java Build Path
在pom.xml文件中添加Servlet依赖引用即可修正错误
javax.servlet
servlet-api
2.5
provided
保存就会自动下载相应的jar文件,如下图:
创建Maven项目时候碰到一些奇怪的问题,都通过上网查询得到解决,这里就不列举了。
可参考https://struts.apache.org/docs/version-notes-251.html
在pom.xml添加:
<dependency>
<groupId>org.apache.strutsgroupId>
<artifactId>struts2-coreartifactId>
<version>2.5.1version>
dependency>
配置欢迎页面和过滤器:
<web-app>
<display-name>Archetype Created Web Applicationdisplay-name>
<welcome-file-list>
<welcome-file>index.jspwelcome-file>
welcome-file-list>
<filter>
<filter-name>struts2filter-name>
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilterfilter-class>
filter>
<filter-mapping>
<filter-name>struts2filter-name>
<url-pattern>/*url-pattern>
filter-mapping>
web-app>
用的版本比较新,配置Web.xml时稍微跟网上的有些文章不一样。之前版本过滤器用org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
现改为org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter
在src/main目录下添加【java】文件夹,添加一个包文件夹,并创建类LoginAction继承ActionSupport类,并重写execute方法:
package com.hurricane.action;
import java.io.IOException;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport {
public String Name;
public int Age;
public String getResult() {
return Result;
}
public void setResult(String result) {
Result = result;
}
public String Result;
public String getName() {
return Name;
}
public void setName(String name) {
Name = name;
}
public int getAge() {
return Age;
}
public void setAge(int age) {
Age = age;
}
@Override
public String execute() throws Exception {
this.setResult("name:" + Name);
this.setResult(this.getResult() + "&age:" + String.valueOf(Age));
return "success";
}
}
简单的提交两个字段,姓名和年龄到后台,后台格式化后返回到前台,练习下Strut2取得前端请求的值和前端显示服务器响应的值。文件内容如下:
<%@ taglib uri="/struts-tags" prefix="s"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ page pageEncoding="UTF-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
head>
<body>
<h2>Hello World!h2>
<form action="login">
<s:property value="Result" />
<br /> 姓名<input type='text' name="Name"> <br /> 年龄<input
type='text' name=Age> <input type="submit" value="提交">
form>
body>
html>
在src/main/resources文件夹下添加struts.xml,配置内容如下:
<struts>
<constant name="struts.devMode" value="true">constant>
<constant name="struts.i18n.encoding" value="UTF-8">constant>
<constant name="struts.locale" value="zh_CN">constant>
<package name="hurricane" extends="struts-default">
<action name="login" class="com.hurricane.action.LoginAction">
<result>
index.jsp
result>
action>
package>
struts>
1.首次打开Index.jsp
本文只是简单的记录如果使用struts框架,struts框架还有很多其他功能,注意以下几个方面:
1.jsp页面使用Struts标签,要将 <%@ taglib uri=”/struts-tags” prefix=”s”%> 添加到页面中
2.涉及到中文统一使用utf-8,修改的地方包括以下三个地方:
demo下载地址:下载