`
jeelee
  • 浏览: 640392 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

我的<s:iterator>标签为什么遍历不出来数据?

阅读更多
1,菜单主类:MainMenu,这个类定义了菜单的基本信息
/**
 * 
 */
package org.jeelee.bean;
/**
 * @author JeeLee
 *
 */
public class MainMenu {
	private String main_kind="";
	private String main_name="";
	private String main_desc="";
	private String main_pic= "";
	
	public MainMenu() {
	}
	
	/**
	 * 设置菜单主类的类别
	 * @param main_kind,String 类型
	 */
	public void setMainKind(String main_kind)
	{
		this.main_kind = main_kind ;
	}
	
	/**
	 * 获得菜单主类的类型
	 * @return 返回菜单主类的类别,String类型
	 */
	public String getMainKind()
	{
		return this.main_kind ;
	}
	
	/**
	 * 设置菜单主类的名称
	 * @param main_name,String 类型
	 */
	public void setMainName(String main_name)
	{
		System.out.println("main_name====================="+main_name);
		this.main_name = main_name ;
	}
	
	/**
	 * 获得菜单主类的ID
	 * @return 菜单主类的名称,String类型
	 */
	public String getMainName()
	{
		return this.main_name ;
	}
	
	/**
	 * 设置菜单主类的描述
	 * @param main_desc
	 */
	public void setMainDesc(String main_desc)
	{
		this.main_desc = main_desc ;
	}
	
	/**
	 * 获得菜单主类的类别描述
	 * @return
	 */
	public String getMainDesc()
	{
		return this.main_desc ;
	}
	
	/**
	 * 设置菜单主分类的图片
	 * @param pic
	 */
	public void setMainPic(String main_pic)
	{
		this.main_pic = main_pic ;
	}
	
	/**
	 * 获得菜单主分类的图片
	 * @return
	 */
	public String getMainPic()
	{
		return this.main_pic ;
	}
	

}

2.菜单主类管理 MainMenuManage ,这个类负责从数据库提取数据
/**
 * 菜单次主类管理
 */
package org.jeelee.bean;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import org.jeelee.dbmanage.DBManage;
import org.jeelee.bean.MainMenu;

/**
 * @author JeeLee
 *
 */
public class MainMenuManage {

	public MainMenuManage() {

	}
	
	DBManage dbmanage =  new DBManage();
	
	/**
	 * 获得菜单主分类,所有分类
	 * @return
	 */
	public List<MainMenu> getAllMainMenus(){
		Connection conn = null;
		Statement stm = null;
		ResultSet rs = null;
		String sql = "select main_kind, main_name, main_desc,main_pic  from mainmenu " ;
		
		List<MainMenu> mainmenuList =new ArrayList<MainMenu>();
		
		conn = dbmanage.getConnection();
		try
		{
			stm = conn.createStatement() ;
			rs = stm.executeQuery(sql);
			while(rs.next())
			{
				MainMenu myBean = new MainMenu() ;
				myBean.setMainKind(rs.getString("main_kind")) ;
				myBean.setMainName(rs.getString("main_name")) ;
				myBean.setMainDesc(rs.getString("main_desc")) ;
				myBean.setMainPic(rs.getString("main_pic"));
				System.out.println("main_kind="+rs.getString("main_kind")+",main_name="+rs.getString("main_name"));
				mainmenuList.add(myBean);
			}
		}
		catch(SQLException ex1)
		{
			System.out.println("提取主菜单失败:"+ex1);
		}
		finally
		{
			try
			{
				rs.close();
				stm.close();
				conn.close() ;
			}
			catch(SQLException ex2)
			{
				System.out.println("关闭提取主菜单失败:"+ex2);
			}
		}
		System.out.println("mainmenuList size================="+mainmenuList.size());
		return mainmenuList ;
	}
	
}

3,获取菜单的action
/**
 * 菜单主分类之action
 */
package org.jeelee.action;

import java.util.List;
import com.opensymphony.xwork2.ActionSupport;

import org.jeelee.bean.MainMenu;
import org.jeelee.bean.MainMenuManage;

/**
 * @author JeeLee
 *
 */
public class MainMenuAction extends ActionSupport {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	MainMenu mainMenu  ;
	List<MainMenu> mainMenus  ;
	MainMenuManage  mainMenuManage = new MainMenuManage() ;
	 
	//action 中的method
	public String list()
	{
		mainMenus = mainMenuManage.getAllMainMenus();
		System.out.println("mainMenus.size="+mainMenus.size());
		return SUCCESS ;
	}
	
	public void setMaiaMenu(MainMenu mainMenu)
	{
		this.mainMenu = mainMenu ;
	}
	
	public MainMenu getMainMenu()
	{
		return this.mainMenu ;
	}
	
	public void setMainMenus(List mainMenus){
		this.mainMenus = mainMenus ;
	} 
	
	public List getMainMenus()
	{
		return this.mainMenus ;
	}
	
	public void setMainMenuManage(MainMenuManage mainMenuManage)
	{
		this.mainMenuManage = mainMenuManage ;
	}
	
	public MainMenuManage getMainMenuManage()
	{
		return this.mainMenuManage ;
	}
	
}

4,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>

	<package name="jeelee" extends="struts-default">
	
    	<action name="mainMenuList" class="org.jeelee.action.MainMenuAction" method="list">
    		<result>mainmenu_list.jsp</result>
    	</action>
    	
    	<action name="personList" class="org.jeelee.action.PersonAction" method="list">
    		<result>admin/personList.jsp</result>
    	</action>
 
	</package>	
</struts>

5,JSP页面
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ 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>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>main menu manage</title>
<link rel="stylesheet" rev="stylesheet" href="admin.css" type="text/css" media="all" />
<script src="resize.js" type="text/javascript"></script>
</head>

<body onload="resize()">
<s:form theme="simple">
	<div id="container" >
			<div id="title" onresize="resize()">菜单主分类管理</div>
			<table id="tab">
				<thead>
					<tr>
						<th>Row</th>
						<th><strong>菜单主分类ID</strong></th>
						<th><strong>菜单主分类名称</strong></th>
						<th><strong>菜单主分类描述</strong></th>
						<th><strong>菜单主分类图片</strong></th>
						<th><strong>修改</strong></th>
						<th><strong>删除</strong></th>
					</tr>
				</thead>
				<tbody>
					<s:iterator value="mainMenus" status="st" id="mainmenuID">
						<tr>
							<td><s:property value= '#st.index+1' /></td>
							<td><s:property value="main_kind" /></td>
							<td><s:property value="main_name" /></td>
							<td><s:property value='main_desc' /></td>
							<td><s:property value='main_pic' /></td>
							<td><a href="<s:url action='mainMenuEdit'><s:param name='main_kind' value="main_kind"/></s:url>">修改</a></td>
							<td><a href="<s:url action='mainMenuDelete'><s:param name='main_kind' value='main_kind'/></s:url>">删除</a></td>
						</tr>
					</s:iterator>
				</tbody>
			</table>
	</div>

</s:form>
</body>
</html>


谁能帮我看看上面的问题啊?为什么属性:main_kind,main_name,main_desc,main_pic都显示空呢?


问题解决了,原来是变量命名问题导致的:
在MainMenu.java中不能将变量命名为main_kind这种形式,而要命名为:mainKind这种形式,真郁闷!







分享到:
评论

相关推荐

    struts2 标签使用

    这里使用了 `&lt;s:iterator&gt;` 标签来遍历一个列表 `list`。对于列表中的每一个元素 `item`,如果 `item.attrValueId` 不为 `0`,则会显示相应的 `AttrValue`、`CountAll` 和 `CountRequest` 的值;否则只显示 `...

    Struts2 JSP中将list,set ,Map传递到Action然后<s:iterator>遍历(三十五)

    本文将深入探讨如何在JSP中将`List`, `Set`, `Map`等集合类型的数据传递到Action,然后再通过`&lt;s:iterator&gt;`标签进行遍历显示。这种方式对于数据的展示和交互具有重要的实践意义。 首先,我们需要了解Struts2的工作...

    struts2 iterator标签遍历二维数组

    在Struts2框架中,`&lt;s:iterator&gt;`标签被广泛用于遍历集合或数组等数据结构。本文将深入探讨如何使用Struts2中的`&lt;s:iterator&gt;`标签来遍历二维数组,并通过实例代码来具体说明其用法。 ### Struts2 Iterator标签 ##...

    Struts2 iterator 标签遍历 Map,List,数组(三十六)

    首先,我们来看如何使用`iterator`标签遍历Map。在Java中,Map是一种键值对的数据结构,`iterator`标签可以通过`key`和`value`属性分别获取键和值。例如: ```jsp &lt;%@ taglib prefix="s" uri="/struts-tags" %&gt; ......

    struts2中iterator 标签的使用详解

    ### Struts2中Iterator标签的深入解析与应用 在Struts2框架中,`&lt;s:iterator&gt;`标签是一个非常强大的工具,用于在JSP页面上循环遍历集合数据,如列表(List)、数组、Map等。它允许开发者以一种动态且灵活的方式展示...

    Struts2标签 s:if test 判断String类型的对象属性值和单字符是否相等的问题

    在Struts2中,`&lt;s:if&gt;`标签用于条件渲染,即如果指定的测试表达式结果为真,则渲染该标签内的内容;反之,则不渲染。此标签支持各种类型的比较操作,包括但不限于等同性、包含性等。但在处理字符串和字符时,由于...

    Struts2标签 UI标志又可以分为表单UI和非表单UI两部分

    - `&lt;s:iterator&gt;` 标签用于遍历集合数据。 - 示例: ```xml &lt;s:iterator value="linkList" status="bean"&gt; &lt;tr&gt; &lt;td class="data_tab_tdcl"&gt; &lt;s:property value="#bean.Index+1"/&gt; &lt;/td&gt; &lt;td class="data_...

    Struts2全部标签使用说明

    以上只是Struts2标签库的一部分,实际使用中还有更多标签如`&lt;s:textfield&gt;`(文本输入框)、`&lt;s:textarea&gt;`(文本区域)、`&lt;s:submit&gt;`(提交按钮)等,每个都有其特定的用途,极大地简化了JSP页面的编写。...

    struts2 标签iterator使用

    在Struts2框架中,`&lt;s:iterator&gt;`标签是一个非常强大的工具,用于遍历集合或数组中的元素,尤其在处理列表数据时极为有用。通过本文档提供的代码示例,我们将深入探讨`&lt;s:iterator&gt;`标签的使用方法及其与不同数据...

    strust2 s:iterator常用情况个人总结

    在 Struts2 框架中,`s:iterator` 是一个非常重要的标签,它主要用于遍历集合数据(如数组、列表、映射表等),并且在 JSP 页面上显示这些数据。下面将根据提供的示例代码对 `s:iterator` 在不同场景下的使用进行...

    s:iterator 用法.pdf

    Struts2框架中的`s:iterator`标签是用于循环遍历数据集合的重要标签,适用于处理数组、列表、Map等数据结构。下面将详细讲解这个标签的用法及其各种属性。 1. **基本用法** `s:iterator`标签的基础用法是通过`...

    s:iterator 用法 (2).docx

    当前索引是偶数为:&lt;s:property value='#st.index'/&gt;&lt;/s:if&gt; 当前元素值:&lt;s:property value='char'/&gt; &lt;/s:iterator&gt; ``` 这段代码会判断当前元素索引是否为偶数,并打印相应的索引和元素值。 3. **遍历Map** ...

    struts2 标签库 帮助文档

    1. &lt;s:generator separator="" val=""&gt;&lt;/s:generator&gt;----和&lt;s:iterator&gt;标签一起使用 H: 1. &lt;s:head/&gt;-----在&lt;head&gt;&lt;/head&gt;里使用,表示头文件结束 2. &lt;s:hidden&gt;&lt;/s:hidden&gt;-----隐藏值 I: 1. &lt;s:...

    Struts标签集合简介

    `&lt;s:token&gt;` 用于防止重复提交,`&lt;s:tree&gt;` 创建树形结构,`&lt;s:treenode&gt;` 定义树节点,`&lt;s:updownselect&gt;` 创建可上下选择的多选框,`&lt;s:url&gt;` 生成URL,通常与Action关联。 以上就是Struts标签的基本介绍,它们极...

    Struts2标签使用.docx

    `&lt;s:iterator&gt;`则用于遍历集合,如`&lt;s:iterator value="list" status="item"&gt;&lt;s:property name="item.property"/&gt;&lt;/s:iterator&gt;`,status属性可以为迭代器创建别名。 以上就是Struts2中部分常用的标签及其用法,...

    struts2标签解释

    `s:iterator`用于遍历集合,是Struts2中非常重要的标签,可以遍历数组、列表等集合类型的数据。 H. `&lt;s:head&gt;`,`&lt;s:hidden&gt;`: `&lt;s:head&gt;`标签用于在页面&lt;head&gt;部分插入结束标签`&lt;/head&gt;`,常用于设置页面头部信息...

    s:iterator 用法.docx

    &lt;s:if test="#st.even"&gt;现在索引是偶数,索引为:&lt;s:property value="#st.index"/&gt;&lt;/s:if&gt; 当前元素值:&lt;s:property value='char'/&gt; &lt;/s:iterator&gt; ``` 3. **遍历 Map** 对于 Map,`value` 属性可以设置为 ...

     strut2 标签详解

    1. `&lt;s:generator&gt;`:与`s:iterator`标签配合使用,生成序列。 H组标签: 1. `&lt;s:head&gt;`:在HTML的`&lt;head&gt;`标签中使用,用于结束头文件。 2. `&lt;s:hidden&gt;`:创建隐藏字段,用于存储不显示的数据。 I组标签: 1. `...

    struts2_标签使用方法.doc

    - `&lt;s:iterator&gt;`:遍历集合或数组,输出元素,支持多种操作,如条件判断、循环控制等。 K. `&lt;s:label&gt;`: - 创建只读标签,常用于展示静态文本或模型属性。 L. `&lt;s:merge&gt;`: - 合并遍历集合时产生的值,可以用于...

    struct2标签

    - `&lt;s:iterator&gt;`:遍历集合,常用于循环渲染数据。 - `&lt;s:inputtransferselect&gt;`:用于在两个列表之间转移选择项。 K. 标签辅助: - `&lt;s:label&gt;`:创建只读标签,通常用于显示文本。 L. 选项与选择框: - `&lt;s:...

Global site tag (gtag.js) - Google Analytics