Java的Struts框架中<results>标签的使用方法

 更新时间:2015年11月26日 15:48:27   投稿:goldensun  
这篇文章主要介绍了Java的Struts框架中<results>标签的使用方法,Struts框架是Java的SSH三大web开发框架之一,需要的朋友可以参考下

<results>标签在Struts2的MVC框架的视图中所扮演的角色。动作是负责执行业务逻辑。执行业务逻辑后,接下来的步骤是使用<results>标签显示的视图。

经常有一些附带导航规则的结果。例如,如果在操作方法是对用户进行验证,有三种可能的结果。 (一)成功登录;(二)不成功的登录,用户名或密码错误;(三)帐户锁定。

在这种情况下的动作方法将被配置呈现的结果有三种可能的结果字符串和三个不同的看法。我们已经看到在前面的例子。

但是,Struts2 不配合使用JSP作为视图技术。毕竟MVC范例的整个目的是保持独立的层,高度可配置的。例如,对于一个Web2.0的客户端,可能希望返回XML或JSON作为输出。在这种情况下,可以创建一个新的结果类型为XML或JSON和实现这一目标。

Struts的一些预定义的结果类型,无论我们已经看到了,这是默认的结果类型,它是用来调度调度到JSP页面。 Struts 允许使用其它标记语言的技术呈现的结果和流行的选择,包括 Velocity, Freemaker, XSLT 和Tiles.

分发结果类型:
调度程序的结果类型是缺省类型,并使用,如果没有其他的结果类型被指定。它被用来转发到一个servlet,JSP,HTML页面,等等,在服务器上。它使用RequestDispatcher.forward()方法。

在我们前面的例子中,我们看到了“shorthand”的版本,在那里我们提供了身体的结果标签 JSP路径。

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

我们也可以指定JSP文件中使用一个<param name="location">的标签内<result...>的元素如下:

<result name="success" type="dispatcher">
  <param name="location">
   /HelloWorld.jsp
  </param >
</result>

我们还可以提供一个分析参数,默认为true。解析参数位置参数决定是否将被解析为OGNL表达式。

FreeMaker结果类型:
在这个例子中,我们将看到我们如何使用FreeMaker作为视图技术。 freemaker是一种流行的模板引擎,用于使用预定义的模板来生成输出。让我们Freemaker模板创建一个文件称为hello.fm以下内容:

Hello World ${name}

在这里,上述文件是一个模板的名字是从外面使用已定义的动作,将传递一个参数置。会保持这个文件在CLASSPATH中。接下来,让我们修改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.yiibai.struts2.HelloWorldAction"
     method="execute">
     <result name="success" type="freemarker">
      <param name="location">/hello.fm</param>
     </result>
   </action>
   
  </package>

</struts>

让我们使用前面的 HelloWorldAction.java,HelloWorldAction.jsp和index.jsp文件。现在右键点击项目名称,并单击Export > WAR File创建一个WAR文件。然后部署这个WAR在Tomcat的webapps目录下。最后,启动Tomcat服务器和尝试访问URL http://localhost:8080/HelloWorldStruts2/index.jsp。这会给出以下画面:

20151126154648843.jpg (560×288)

输入一个值“Struts2”,并提交页面。应该看到翻页

20151126154710714.jpg (560×254)

正如看到,这是完全一样的JSP视图,但我们是不依赖于使用JSP作为视图技术。在这个例子中,我们已经使用Freemaker。

重定向结果类型:
重定向的结果类型,调用的是标准response.sendRedirect() 方法,使浏览器建立一个新的请求发送到给定的位置。

我们可以提供无论是在体内的<result...>元素或作为一个<param name="location">的元素的位置。还支持重定向解析参数。下面是一个例子使用XML配置:

<action name="hello" 
  class="com.yiibai.struts2.HelloWorldAction"
  method="execute">
  <result name="success" type="redirect">
    <param name="location">
     /NewWorld.jsp
   </param >
  </result>
</action>

因此,只要修改struts.xml文件,定义如上所述重定向类型,并创建一个新的文件,在那里会被重定向 Hello时动作将返回成功到NewWorld.jpg。也可以checkStruts2 重定向操作的例子,为了更好的理解。

相关文章

  • Java截取字符串的几种方法示例

    Java截取字符串的几种方法示例

    众所周知java提供了很多字符串截取的方式,下面这篇文章主要给大家总结介绍了关于Java截取字符串的几种方法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-04-04
  • java版飞机大战实战项目详细步骤

    java版飞机大战实战项目详细步骤

    这篇文章主要为大家详细介绍了java版飞机大战实战项目详细步骤,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-11-11
  • Socket编程简单示例(聊天服务器)

    Socket编程简单示例(聊天服务器)

    socket编程是在不同的进程间进行网络通讯的一种协议,下面这篇文章主要给大家介绍了关于Socket编程简单示例的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-02-02
  • IDEA 显示Run Dashboard窗口的2种方式(推荐)

    IDEA 显示Run Dashboard窗口的2种方式(推荐)

    这篇文章主要介绍了IDEA 显示Run Dashboard窗口的2种方式,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • SpringBoot优雅捕捉异常的两种方法小结

    SpringBoot优雅捕捉异常的两种方法小结

    SpringBoot框架对异常的处理提供了几种很强大的方法,我们可以通过@ControllerAdvice和@ExceptionHandler注解实现全局异常的处理,下面就来介绍一下这两种方法的实现,感兴趣的可以了解一下
    2024-08-08
  • Java流程控制语句最全汇总(中篇)

    Java流程控制语句最全汇总(中篇)

    这篇文章主要介绍了Java流程控制语句最全汇总(中篇),本文章内容详细,通过案例可以更好的理解数组的相关知识,本模块分为了三部分,本次为中篇,需要的朋友可以参考下
    2023-01-01
  • Spring Boot集成JavaMailSender发送邮件功能的实现

    Spring Boot集成JavaMailSender发送邮件功能的实现

    spring提供了发送邮件的接口JavaMailSender,通过JavaMailSender可以实现后端发送邮件,下面这篇文章主要给大家介绍了关于Spring Boot集成JavaMailSender发送邮件功能的相关资料,需要的朋友可以参考下
    2022-05-05
  • java实现文件上传、下载、图片预览

    java实现文件上传、下载、图片预览

    这篇文章主要介绍了java实现文件上传、下载、图片预览,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • springboot读取bootstrap配置及knife4j版本兼容性问题及解决

    springboot读取bootstrap配置及knife4j版本兼容性问题及解决

    这篇文章主要介绍了springboot读取bootstrap配置及knife4j版本兼容性问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • Java中利用BitMap位图实现海量级数据去重

    Java中利用BitMap位图实现海量级数据去重

    有许多方法可以用来去重,比如使用列表、集合等等,但这些方法通常只适用于一般情况,然而,当涉及到大量数据去重时,常见的 Java Set、List,甚至是 Java 8 的新特性 Stream 流等方式就显得不太合适了,本文给大家介绍了Java中利用BitMap位图实现海量级数据去重
    2024-04-04

最新评论