使用IntelliJ IDEA 生成Struts2框架应用实例Hello World

使用IntelliJ IDEA 生成Struts2框架应用实例Hello World

当在Struts2的web应用程序中点击一个超链接或提交一个HTML表单时,会由控制器收集输入并发送一个叫Actions的Java类。

Action被执行后,Result会选择一个资源给出响应。

对于每个Struts2项目来的构建来说要有以下四个组件:

  1. Action 操作

创建一个动作类,包含完整的业务逻辑并控制用户、模型及视图间的交互。

  1. Interceptors 拦截器

这是控制器的一部分,可以根据需求创建拦截器,或者使用现有的拦截器

  1. View 视图

创建一个JSP与用户进行交互,获取输入并呈现最终信息

  1. Configuration Files 配置文件

创建配置文件来连接动作、视图以及控制器,这些文件分别是struts.xml,web.xml及Struts.properties

 

使用IntelliJ IDEA 生成Struts2框架的J2EE应用程序步骤如下:

第一步:

File->new->Project...

在弹出的对话框中选择Java Enterprise

第二步:

对生成的应用程序加入Struts2框架集成

Additional Libraries and Frameworks中选择Struts2,选择“Next”

第三步:

在完成第二步后在新的窗口中输入Project name

 

创建Action类

Action类它是Struts2应用程序的关键,通过它实现大部分业务逻辑。

 

import com.opensymphony.xwork2.ActionSupport;

public class HelloWorldAction extends ActionSupport {
    private String name;

    @Override
    public String execute() throws Exception {
        return "success";
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

 

Struts2框架会创建一个HelloWorldAction类对象,并调用execute方法来响应用户的动作。

 

创建视图

创建一个JSP来展现最终信息,当一个预先定义动作发生时空上页面将被Struts2框架调用,并且这个映像会定义到struts.xml文件里。

<

%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="s" uri="/struts-tags" %>


    Hello World


    Hello World,

taglib指令告知Servlet容器这个页面会使用Struts2标签,并且这些标签会被s放在前面,s:property标签显示Action类“name”属性的值,这个值是通过HelloWorldAction类的getName()方法返回的。

 

对index.jsp页面改造

<

有一个form表单,其中action定义为hello,action会通过struts.xml文件映射到HelloWorldAction类及其execute方法。

%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="s" uri="/struts-tags" %>

  
    Hello World From Sturuts2
  
  
    
      <%--@declare id="name"--%>                          
  

配置文件

需要一个映像把URL,HelloWorldAction类(模型)以及HelloWorld.jsp(视图)联系在一起。映像告知Struts2哪个类将响应用户的动作(URL),类的哪个方法会执行,以及基于方法所返回的字符串结果,会呈现怎么样的视图。



    
        
            /HelloWorld.jsp
        
    

 

helloworld数据包(package),在这个数据包中把Actions集合在一起。其中命名动作action名称为hello,并指定对应的Action处理类同时指定其执行方法名称为execute。在action中指定返回结果为success时会进入哪个页面进行显示结果。

web.xml文件,这个文件是Struts2任何请求的接入点。在web.xml中Struts2应用程序的接入口会定义为一个过滤器。

<

?xml version="1.0" encoding="UTF-8"?>

    
        struts2
        org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter
    
    
        struts2
        /*
    

在上面配置了所有的URL(/*)都会走到Struts2过滤器

注意:生成的中的类如果找不到一定要根据当前的Structs包中的类来对应加入,工具默认生成的可能不正确(有版本问题)

在WEB-INF下新增lib目录,并把struts2相关的jar包复制进去,复制进后一定要对选中的类右键选择Add Library

你可能感兴趣的:(WEB,Java,编程)