0 0

【Struts2】如何处理网站首页中的各个子栏目或频道?5

网站的首页一般都会调用很多栏目的最新内容,但是一个action往往只能完成一项任务,请教如何通过一个参数来控制各个栏目的数据调用?

第一次学习struts2,一直没有搞明白?希望大家帮助。
问题补充:
多个list的确可以做在action中,但是灵活性和效率都很差。我希望能够使用一个参数或者像函数调用一样的获取各个栏目的list然后去迭代。

从灵活性,效率上来说还有没有更好的方法?

谢谢!
问题补充:
【例如javaeye的首页】

http://www.iteye.com/

《Java编程和企业应用热点》和《动态语言编程热点》等栏目都是调用同一个数据库知识分类不同而已,难道没有更简单的办法吗?
问题补充:
引用
你可以把这些操作都封装成一个服务层的方法,每次只要传栏目的ID,再调用服务层的方法,就可以得到该栏目下对应的记录。


如何与action联系呢,url调用的时候毕竟对应一个action,对于数据不同类型有异的返回也就是一个result.

那么如何根据不同的类别(参数)返回不同的result?
问题补充:

【sunlightcs 】

尽管不是我所期盼的答案,还是很感谢您。

谢谢!


问题补充:
【一般可以使用ajax异步加载首页内容,这个时候Ba类的queryList可以返回JSON数据,然后再返回客户端再处理。】

如果这样处理,就和dwr和Ext的方式就差不多了,十分感谢您的回答。
2009年10月21日 21:05

3个答案 按时间排序 按投票排序

0 0

采纳的答案

public class ShowNewListAction extends ActionSupport {
	private static String FORWARD = null;

	private List<PBasePurviewUser> userList;
	private List<PBasePurviewRole> userGroupList;

	private UserManageService userManageService;

	public void setUserManageService(UserManageService userManageService) {
		this.userManageService = userManageService;
	}

	public String execute() throws Exception {

		try {
			userList = userManageService.getUserList();
			userGroupList = userManageService.getUserGroupList();
			if (userList != null && userGroupList != null) {
				FORWARD = "success";
			} else {
				FORWARD = "input";
			}
		} catch (Exception ex) {
			ex.printStackTrace();
		}
		return FORWARD;
	}

	public List<PBasePurviewUser> getUserList() {
		return userList;
	}

	public void setUserList(List<PBasePurviewUser> userList) {
		this.userList = userList;
	}

	public List<PBasePurviewRole> getUserGroupList() {
		return userGroupList;
	}

	public void setUserGroupList(List<PBasePurviewRole> userGroupList) {
		this.userGroupList = userGroupList;
	}

}

这是我以前项目里去的两个分类下所有元素的代码。其实就是你说的
“多个list的确可以做在action中,但是灵活性和效率都很差。”
但是你能保证“使用一个参数或者像函数调用一样的获取各个栏目的list然后去迭代”的灵活性和效率就比这个好?而且你目前还没想到怎么实现“使用一个参数或者像函数调用一样的获取各个栏目的list然后去迭代”而且楼下回答中有一个用“switch”的,其实效率和灵活性和“多个list在action中”是一样的。

2009年10月24日 01:05
0 0

同一接口,多个实现,java多态特性的体现。

2009年10月21日 23:43
0 0

为每个栏目指定一个唯一的ID,作为参数传入你的Action中,然后根据不同的ID调用不同的业务类查询List的接口将结构返回给Action即可。

		/*columnId:1为最新公告,2为xxxx,3为xxxx,...*/
		String columnId = request.getParameter("columnId");
		Map params = new HashMap();//保存需要的参数
		List list = new ArrayList();
		IndexBa ba;//公共Ba
		switch(Integer.parseInt(columnId)){
		case 1:
			ba = new NoticeBa();
			break;
		case 2:
			ba = new OtherBa();
			break;
		case 3:
                        ba = ...;
			break;
		case 4:
                        ba = ...;
			break;
			...
		}
		list = ba.queryList(params);//各个Ba各自实现queryList接口
		
		...


一般可以使用ajax异步加载首页内容,这个时候Ba类的queryList可以返回JSON数据,然后再返回客户端再处理。

2009年10月21日 23:41

相关推荐

    应用Struts2处理表单数据

    在处理表单数据方面,Struts2提供了一种高效且灵活的方法,使得开发者能够轻松地从用户提交的表单中获取并处理数据。这篇博客文章“应用Struts2处理表单数据”可能会探讨以下核心知识点: 1. **Action类**:在...

    Struts2之异常处理案例struts003

    在Struts2中,异常处理是一项重要的功能,它确保在应用程序遇到错误时能够优雅地处理,提供友好的用户反馈,并保持系统稳定性。下面将详细讨论Struts2中的异常处理机制及其相关知识点。 1. **异常处理机制概述** ...

    struts2中文学习文档

    从给定的文件信息来看,标题“struts2中文学习文档”和描述“struts2的根本webwork2”表明这是一份关于Struts2框架的学习资料,特别强调了Struts2与WebWork2的关系。Struts2是Apache Struts的一个版本,它是一个用于...

    struts2国际化处理全解

    6. **处理错误和异常消息**:Struts2默认会自动从资源文件中查找错误和异常消息,只需确保在`struts.properties`中设置了正确的错误消息资源包。 在提供的压缩包`07`中,可能包含了相关的教学材料,如幻灯片和案例...

    Struts2的处理流程

    Struts2的处理流程

    Struts2接口文档

    总的来说,Struts2接口文档是学习和使用Struts2框架不可或缺的工具,它能帮助开发者高效地理解和使用框架提供的各种组件和接口,提升开发效率,减少错误,并有助于深入理解MVC模式在实际项目中的应用。通过仔细研读...

    struts2的各种jar包

    6. **依赖库**:Struts2还依赖其他开源库,如Apache OGNL(Object-Graph Navigation Language)用于表达式语言,FreeMarker或Velocity用于视图渲染,Commons Logging、 Commons FileUpload等Apache Commons库用于...

    使用Struts 2框架开发租房网站

    在北大青鸟Y2学年的课程中,学生们通常会学习如何利用Struts 2框架来构建一个租房网站,这涉及到多个关键知识点。 1. **MVC模式**:Struts 2是基于MVC设计模式的,它将应用程序分为模型、视图和控制器三个部分,以...

    Struts2视频教程

    - **适用范围**:Struts2广泛应用于企业级Java Web项目的开发中,特别是那些需要处理大量用户交互和数据展示的应用。 #### 二、Struts2入门案例 - **Hello Struts2**:通过创建一个简单的“Hello World”示例,...

    留言板留言板struts2留言板struts2

    9. **异常处理**:Struts2通过全局异常映射(Global Exception Mapping)来统一处理应用程序中抛出的异常,提高代码的可维护性。 10. **国际化与本地化**:Struts2支持多语言环境,可以通过资源包(properties文件...

    基于Struts2的博客网站

    **基于Struts2的博客网站** 是一个使用Java Web开发技术构建的应用程序,它展示了Struts2框架在创建动态、交互式的Web应用方面的强大功能。Struts2是Apache软件基金会旗下的一个开源MVC(Model-View-Controller)...

    struts2中异常处理(demo)

    1. **全局异常处理**:在Struts2的配置文件中,可以定义一个或多个`&lt;global-exception-mappings&gt;`标签来处理全局异常。这些映射可以指定一个特定的Action或结果来处理特定类型的异常。例如,当发生`...

    Struts2Demo2

    在这个项目中,我们将深入探讨Struts2的关键特性、配置以及它如何协调各个组件来实现业务逻辑和用户界面的分离。 首先,了解Struts2的基础架构至关重要。Struts2的核心是Action类,它是处理用户请求并执行业务逻辑...

    struts2 API帮助文档

    综上,这个“struts2 API帮助文档”对于开发人员深入理解和使用Struts2框架至关重要,涵盖了框架的各个方面,从基础组件到高级特性的实现。有了这份文档,开发者可以更高效地编写稳定、可维护的Java web应用。

    struts2项目开发

    Struts2 项目开发 Struts2 是一个基于 Java Web 的框架,广泛应用于 Web 应用程序的开发。下面将从 Struts2 项目开发的角度,详细介绍 Struts2 框架的应用、开发流程、技术架构、实践经验等方面的知识点。 项目...

    struts2所有jar包程序文件

    2. `xwork-core.jar`:XWork是Struts2的基础,提供了许多底层的功能,如类型转换、对象图导航、事件处理等。 3. `ognl.jar`:Object-Graph Navigation Language (OGNL)是Struts2中使用的表达式语言,用于在视图层和...

    struts1和struts2的区别

    - **Struts2**: Struts2中的Action更像是工厂模式下的产品,每个Action实例都是线程安全的。Struts2提供了ActionSupport基类来简化Action的实现。Action本身可以是任何实现了特定接口的Java对象,甚至是普通的POJO。...

    Struts2漏洞检查工具Struts2.2019.V2.3

    "Struts2漏洞检查工具Struts2.2019.V2.3"是一个专门针对这些漏洞进行检测的工具,旨在帮助开发者和网络安全专业人员识别并修复Struts2框架中的安全问题。 Struts2的安全漏洞主要包括以下几类: 1. OGNL(Object-...

    Struts2 Struts2 超好的Struts2 pdf 文档

    9. **异常处理**:Struts2提供了全局和局部的异常处理机制,可以统一处理应用中的异常情况,提高代码的可维护性和用户体验。 10. **国际化(i18n)**:Struts2支持多语言环境,通过资源包(Properties文件)来实现...

    Struts2教学视频

    1. 引入Struts2的核心库依赖到项目中,这通常是在Maven或Gradle的pom.xml或build.gradle文件中添加对应的依赖。 2. 配置web.xml文件,将Struts2的Filter映射到Web应用的请求上。 3. 创建Struts2的配置文件struts.xml...

Global site tag (gtag.js) - Google Analytics