用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字

云代码会员    -  云代码空间

——

Sturts2教程

2015-06-27|1352阅||

摘要:搭建Sturts框架

 

创建动作action:

Action类是Struts 2应用程序的关键,我们实现了大部分Action类中的业务逻辑。因此,让我们创建一个Java文件HelloWorldAction.javaJava资源> SRC下一个的包名com.tutorialspoint.struts2并有下面的内容。

Action类来响应用户的操作,当用户点击一个URL Action类中的一个或多个方法被执行,并返回一个字符串结果。基于结果的价值,一个特定的JSP页面的呈现方式。

package com.tutorialspoint.struts2;

public class HelloWorldAction{

   private String name;

   public String execute() throws Exception {

      return "success";

   }

  

   public String getName() {

      return name;

   }

   public void setName(String name) {

      this.name = name;

   }

}

这是一个非常简单的类,一个名为“name”属性。我们有标准名称属性gettersetter方法,返回字符串“SUCCESS”执行方法。
Struts2
框架的HelloWorldAction类将创建一个对象并调用execute方法在响应用户的操作。你把业务逻辑里面execute方法,并最终返回的字符串常量。简单地说为每个URL执行一个动作类,或者你可以直接使用这个类的名称作为操作名,也可以映射到一些其他的名称使用struts.xml文件,如下图所示。

创建一个视图

我们需要一个JSP提交最后的消息,这个页面会被称为Struts 2框架中预定义的动作时,会发生此映射将在struts.xml文件中定义的。所以,让我们创建下面的JSP文件的helloWorld.jsp,在WebContent文件夹在您的Eclipse项目。要做到这一点,右键单击WebContent文件夹中的项目资源管理器,然后选择新建”>“JSP文件。

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

<%@ taglib prefix="s" uri="/struts-tags" %>

<html>

<head>

<title>Hello World</title>

</head>

<body>

   Hello World, <s:property value="name"/>

</body>

</html>

taglib指令告诉Servlet容器中,这个页面将使用Struts2标签,这些标签之前,将通过s:property标签中显示的动作类的属性名称>HelloWorldAction类的getName()方法返回的值。

创建主页面:

我们还需要在WebContent文件夹中创建的index.jsp。该文件将作为初始动作URL,用户可以直接点击告诉Struts 2框架调用的HelloWorldAction类定义的方法,使HelloWorld.jsp视图。

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"

   pageEncoding="ISO-8859-1"%>

<%@ taglib prefix="s" uri="/struts-tags"%>

   <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

"http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<title>Hello World</title>

</head>

<body>

   <h1>Hello World From Struts2</h1>

   <form action="hello">

      <label for="name">Please enter your name</label><br/>

      <input type="text" name="name"/>

      <input type="submit" value="Say Hello"/>

   </form>

</body>

</html>

hello操作定义在上面的视图文件将被映射到的HelloWorldAction类和它的执行方法使用struts.xml文件。当用户点击提交按钮,它会导致Struts2框架运行执行方法定义在其中,HelloWorldAction类和方法的返回值的基础上,将相应的视图选择和呈现的一种反应。

配置文件

我们需要一个映射,以配合URLHelloWorldAction类(模型),HelloWorld.jsp(图)。映射告诉Struts 2框架的类将响应用户的操作(URL),这一类的方法将被执行,什么视图来显示字符串结果的基础上,该方法返回。

因此,让我们创建一个名为struts.xml中。由于Struts2要求struts.xml中存在的类文件夹中。因此,创建的WebContent/WEB-INF/classes文件夹下struts.xml文件。Eclipse不会创建文件夹下,所以你需要自己做。要做到这一点,在项目浏览器和WEB-INF文件夹上点击右键,选择新建”>“文件夹。你的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.0.dtd">

<struts>

<constant name="struts.devMode" value="true" />

   <package name="helloworld" extends="struts-default">

    

      <action name="hello"

            class="com.tutorialspoint.struts2.HelloWorldAction"

            method="execute">

            <result name="success">/HelloWorld.jsp</result>

      </action>

   </package>

</struts>

上面的配置文件的几句话。在这里,我们设置常数struts.devModetotrue,因为我们需要看到一些有用的日志消息。我们再定义一个名为HelloWorld包。创建一个包是有用的,当你想要创建新的动作。在我们的例子中,我们的行动命名为“hello”相应的URL/hello.action和备份HelloWorldAction.class。执行方法HelloWorldAction.class方法被调用时运行URL/hello.action。如果结果execute方法返回“success”,那么我们就用户HelloWorld.jsp

下一步是创建一个web.xml文件,该文件的任何请求的入口点到Struts2Struts2的应用程序的入口点,将是一个部署描述符(web.xml)中定义的过滤器。因此,我们将定义在web.xml中一个条目oforg.apache.struts2.dispatcher.FilterDispatcher类。WebContentWEB-INF文件夹下需要创建web.xml文件。 Eclipse已经在创建项目时创建了一个web.xml文件。但是我们还需要修改如下:

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

<web-app xmlns:xsi="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_3_0.xsd"

   id="WebApp_ID" version="3.0">

  

   <display-name>Struts 2</display-name>

   <welcome-file-list>

      <welcome-file>index.jsp</welcome-file>

   </welcome-file-list>

   <filter>

      <filter-name>struts2</filter-name>

      <filter-class>

         org.apache.struts2.dispatcher.FilterDispatcher

      </filter-class>

   </filter>

   <filter-mapping>

      <filter-name>struts2</filter-name>

      <url-pattern>/*</url-pattern>

   </filter-mapping>

</web-app>

我们已经指定index.jsp是我们欢迎(welcome)文件。我们已经配置Struts2过滤器上运行的所有URL(即,任何URL匹配模式/*

启用详细的日志:

您可以启用日志记录功能齐全,工作时用Struts 2WEB-INF/classes文件夹下创建logging.properties文件。请在属性文件中的以下两行:

 

org.apache.catalina.core.ContainerBase.[Catalina].level = INFO

org.apache.catalina.core.ContainerBase.[Catalina].handlers = \

                              java.util.logging.ConsoleHandler

默认logging.properties指定ConsoleHandler的路由记录到stdoutFileHandler。一个处理程序的日志级别阈值可以设置使用ERRORWARNINGINFOCONFIGFINEFINERFINEST或全部。
就是这样。我们已经准备好来运行我们的Hello World应用程序使用Struts 2框架。

执行应用程序

右键点击项目名称,并单击导出”> WAR文件创建一个WAR文件。然后,这WAR部署在Tomcatwebapps目录下。最后,启动Tomcat服务器,并尝试访问URL http://localhost:8080/HelloWorldStruts2/index.jsp。这会给你以下画面:

输入值为"Struts2",并提交页面。您应该看到下一页

顶 0踩 0收藏
文章评论
    发表评论

    个人资料

    • 昵称: 云代码会员
    • 等级: 初级程序员
    • 积分: 18
    • 代码: 5 个
    • 文章: 5 篇
    • 随想: 1 条
    • 访问: 10 次
    • 关注

    人气代码

    标签

    最新提问

    站长推荐