首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >聚集JSP页面的最佳方法,就像我们构建LEGO一样

聚集JSP页面的最佳方法,就像我们构建LEGO一样
EN

Stack Overflow用户
提问于 2011-12-19 20:51:51
回答 2查看 262关注 0票数 1

经过多年的基于XML/XSLT的开发,我来到了java世界,而且我逐渐变得越来越可疑--在java web应用程序构建思想上,我似乎错过了一些非常重要的东西。

这就是我们用xslt方式构建布局的方式:我们将所需的所有数据聚合到一个XML文件中,这些XML文件可以转换为html布局。

在一些示例性伪XML语言中,它可以如下所示:

代码语言:javascript
复制
   <data xmlns:x="..." xmlns:xi="..."> 
      <x:get url="http://ourrestapi.net/rrrrrest" xpath="/rest/rest/rest[2]">
        <x:param name="sortBy" value="desc" />
      </x:get>
      <x:get url="http://ourrestapi.net/userdata">
        <x:guard test="authorized">
         <x:param name="login" value="john" />
        </x:guard>
      </x:get>
      <xi:include href="common.xml" />
  </data>

我想这足以说明这个想法。因此,这就是我一直试图在servlet/jsp世界中实现的方法。毫无疑问,这个问题归结为一个问题,我相信这是一个经典的jsp新手问题:“我如何在jsp页面中包含servlet输出?”

正确的答案是(如果我错了就纠正我)--我不应该。我应该使用请求链接。据我所理解(再一次,如果我混淆了事实,请更正),这意味着我应该调用servletA,它将适当的数据放到当前的请求中,然后将其转发到servletB,以此类推。最后,我们重定向到页面,并填充所有属性。

至于我,我可以说出至少有两个主要的困难:

  • 我应该在某个地方保持重定向的顺序。不管servletA现在是否应该重定向到servletB,或者其他一些人,不知道监管对象应该做什么。
  • 如果我们以storing的形式将所有内容存储在请求属性中,那么如果我们需要将servletB调用参数化到我们在servletA中获得的数据,那么我们必须提供一些繁琐的序列化/反序列化工作。

因此,我的问题是-是从几个不同来源向JSP页面添加数据的最佳方法。

如果这些问题对经验丰富的JSP开发人员来说听起来很愚蠢的话,请原谅,事实是java世界真的很大,很成熟,所以找出真相并不总是容易的。

EN

回答 2

Stack Overflow用户

发布于 2011-12-19 21:25:42

我不认为servlet链接是一种非常流行的填充请求数据的方法,特别是使用重定向,因为这将清空您的请求。

通常,无论使用什么后端框架(也不再使用servlet),都会公开来自一个或多个服务的数据。

是什么使您认为请求属性需要是字符串?它们可以是你想要的任何类型。请求参数(来自JSP的数据)将是字符串,必须使用某种形式的类型转换来根据请求参数创建域对象。大多数框架都有这种或那种形式的功能。

票数 0
EN

Stack Overflow用户

发布于 2012-03-09 20:57:07

当我们使用xslt思考时,这就是我们构建布局的方式。因此,这就是我一直试图在servlet/jsp世界中实现的方法。

为什么?Java和XSLT是不同的东西。您这样做是因为您的应用程序是以XML为中心,而XSLT为您提供了处理它的能力,还是仅仅因为您的大脑固定在XSLT思维中?

如果您的应用程序的核心是XML,并且您的方法是合理的,那么也许可以看看阿帕奇茧谁应该能够处理XML管道。注释中还提到了其他一些框架,因此我将指出春天的一个方面:它有XSLT视图

如果您的数据不容易转换为XML,但是您正在这样做,这样您就可以使用XSLT来处理它,仅仅因为XSLT比JSP更熟悉它,那么您就错了。

至于从多个来源收集数据,servlet/JSP链接并不是一个好主意。这些都是低级组件,(正如您自己注意到的)需要外部协调来创建应用程序工作流。通常,Servlets/JSP是由构建在其之上的web框架协调的。

Java web框架主要是MVC,因此在MVC中您将在模型中进行数据收集(模型包含业务逻辑和协调以类似于数据),然后将其发送给Controlller,后者将选择适当的视图来呈现数据。如果您的数据确实是XML (或者很容易转换到XML),那么此时XSLT视图可能会有所帮助(JSP实际上不是专门为处理XML而设计的)。

正如您自己说的,Java世界是“非常、非常庞大和成熟的”,因此您可以通过多种方式来解决这个问题(例如,有许多方法可以剥去一只猫的皮)。最终需要合并JSP片段吗?西特梅什Apache瓷砖,定制JSP标签,甚至小港.您可以使用许多框架、库等。

但是,无论您最终选择了什么解决方案,只需确保您使用Java思维来实现它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8567398

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档