本例参考于StrutsDoc,虽然有参考,但入门来说还是犯了不少错误,因此详细记录一下张
1.搭建环境,首先eclipse中建立一个动态web工程
这里得注意,要向WEB-INF的lib中copy jar包,而不是直接在build path中导入
copy jar包的时候注意struts开头的包只保留struts-core-xxx.jar
如图所示
2.环境搭建好了之后我们开始写配置文件
首先是web.xml
"1.0" encoding="UTF-8"?>
"http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
zhoujie
struts2
class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter class>
struts2
/*
这里在struts doc中并没有说明,但是filter-class还是需要指定的,否则会报filter方面的错误
3.开始写代码
需要一个pojo存信息,需要一个action来当controller
pojo类:
package com.rf.zj.model;
public class Message {
private String message;
public Message(){
setMessage("zzzzzzzzzzzzzzzzz");
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
action类
package com.rf.zj.action;
import com.opensymphony.xwork2.ActionSupport;
import com.rf.zj.model.Message;
public class myaction extends ActionSupport{
/**
*
*/
private static final long serialVersionUID = 1L;
public Message messagestore;
@Override
public String execute() throws Exception {
messagestore=new Message();
return SUCCESS;
}
public void setMessage(Message message){
this.messagestore=message;
}
public Message getMessage(){
return messagestore;
}
}
这个地方要注意继承ActionSupport类
如果说继承时报错,那么需要在buildpath中导入4个包,分别是
antlr.jar ognl.jar struts-core-xxx.jar xwork.jar
4.写页面
逻辑是:进入index.jsp页面 ,点击一个超链接就会到另一个页面并且显示一定的字段(字段由action控制)
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
"-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
"Content-Type" content="text/html; charset=ISO-8859-1">
Insert title here
Welcome come to struts2
此处,需要引入taglib <%@ taglib prefix="s" uri="/struts-tags" %>
并且使用Hello World
5.我们s:url action=’hello’ 都写好了,可是没有hello这个action,我们需要在struts.xml中写
struts.xml放在src文件夹下,路径可以配置,但这是入门,我就不配置了
"1.0" encoding="UTF-8"?>
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
"struts.devMode" value="true" />
<package name="basicstruts2" extends="struts-default">
"index">
/index.jsp
"hello" class="com.rf.zj.action.myaction" method="execute">
"success">/helloworld.jsp
package>
有一个名为hello的action,控制类是class="com.rf.zj.action.myaction" ,执行方法是method="execute"
跳转的页面是
6、我们开始写helloworld.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
"-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
"Content-Type" content="text/html; charset=ISO-8859-1">
Insert title here
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
"messagestore.message" />
"messagestore.message" />
这个地方也要使用标签库, <%@ taglib prefix="s" uri="/struts-tags" %>
然后在下面使用
具体的标签库以后再学习,现在已经知道了两个标签的用法了
s:url action=’actioname’
s:property value=”something.property”
7.发布运行
run on server 选择tomcat发布,
然后 输入http://localhost:8080/zhoujie/
页面显示如下:
点击超链接
会发现,地址变成hello.action,也得到了messagestore的message属性