Struts2入门Demo

本例参考于StrutsDoc,虽然有参考,但入门来说还是犯了不少错误,因此详细记录一下张

1.搭建环境,首先eclipse中建立一个动态web工程

这里得注意,要向WEB-INF的lib中copy jar包,而不是直接在build path中导入

copy jar包的时候注意struts开头的包只保留struts-core-xxx.jar

如图所示

Struts2入门Demo_第1张图片

 

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.StrutsPrepareAndExecuteFilterclass>
   


    
        struts2
        /*
   


这里在struts doc中并没有说明,但是filter-class还是需要指定的,否则会报filter方面的错误

3.开始写代码

需要一个pojo存信息,需要一个action来当controller

pojo类:

Struts2入门Demo_第2张图片

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


"">Hello World




此处,需要引入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"

跳转的页面是 /helloworld.jsp

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" %>

然后在下面使用

得到messagestore中的message属性

具体的标签库以后再学习,现在已经知道了两个标签的用法了

s:url action=’actioname’

s:property value=”something.property”

7.发布运行

run on server 选择tomcat发布,

然后 输入http://localhost:8080/zhoujie/

页面显示如下:

image

点击超链接

会发现,地址变成hello.action,也得到了messagestore的message属性

转载于:https://my.oschina.net/u/2275839/blog/393978

你可能感兴趣的:(java,开发工具,web.xml)