对于任何一个页面尤其是首页来说可能存在一个以上的模块。
![](https://p-blog.csdn.net/images/p_blog_csdn_net/fatsozhang/index1.jpg)
由于太多图中只能显示产品新闻和招牌信息两个模块。
以前我习惯将首页做为单独的一个模块,不过这样的结果是action
的代码会相当长,维护起来非常麻烦。而且图中“招聘信息”只是“招聘模块”的一小部分,这样也造成了很多重复的代码。
当然我并不知道csdn
的首页是如何实现的,下面我将介绍如何解决这个问题(本人是08
应届毕业生,没有工作经验,如有不妥之处希望赐教)
根据以上两点问题。我们希望讲“招聘信息”在“招聘模块”里面去的这样才是合理的。但是,一个首页并不是只有一个模块,那么如何从多个模块取得数据,然后在首页显示就是关键了。下面我们就谈谈如何做。
代码我将用struts1.x
编写。
首先,为了更好的维护,我们需要为每个出现在首页的小模块(如图中的“招聘信息”)都做一张页面,然后在index.jsp
中在合适的地方包涵此页面:
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
<
table
>
<
tr
>
<
td
>
<
jsp:include
page
="join.jsp"
/>
</
td
>
<
td
>
<
jsp:include
page
="product.jsp"
/>
</
td
>
</
tr
>
</
table
>
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
对于
jsp
标签这里不多解释。
然后就是
要包含的页面了,此页面主要是判断
request
中是否有相应的数据,如果有则输出内容
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
那么如何取得数据呢?我们知道数据要从
action
中得到,要想通过改写
url
的方式是很困难的,我们可以在
index.jsp
中这样写:
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
注意:
*在
joinAction
中
获取数据成功后应当转到
index.jsp
页面。
*
整个过程都是用的同一个
request
,所以能正常显示。
*
获取数据的那段代码(代码如下)一定要放到
index.jsp
中的顶部,否则会影响 性能。
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
因为如
request
中部存在
show
join
属性,即数据还没有获取,页面就会跳转到
action
中,获取成功后会返回
index.jsp
,这就意味着index.jsp页面将被刷新(重复执行)。所以此代码应
放到
index.jsp
中的顶部。