Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用jstl在jsp中获取数据?_Java_Jsp_Jstl - Fatal编程技术网

Java 如何使用jstl在jsp中获取数据?

Java 如何使用jstl在jsp中获取数据?,java,jsp,jstl,Java,Jsp,Jstl,目前,我正在使用scriptlet获取jsp中的数据,但现在想使用JSTL,所以我正在尝试将scriptlet代码转换为JSTL。但对于下面的场景,我不知道如何在jstl中获取数据 让我举例说明: 有3个对象 用户(用户id、用户名、密码) 盒子(盒子id、盒子名称、盒子猫列表) 箱猫(箱猫id、箱猫id、用户id、箱猫名称) 现在我需要显示用户自己的框列表。所以,我通过在servlet中启动查询创建了一个Box对象列表,并在请求属性中将该列表传递给jsp,然后在jsp中访问它。直到这一切都好起

目前,我正在使用scriptlet获取jsp中的数据,但现在想使用JSTL,所以我正在尝试将scriptlet代码转换为JSTL。但对于下面的场景,我不知道如何在jstl中获取数据

让我举例说明:

有3个对象

  • 用户(用户id、用户名、密码)
  • 盒子(盒子id、盒子名称、盒子猫列表)
  • 箱猫(箱猫id、箱猫id、用户id、箱猫名称)

  • 现在我需要显示用户自己的框列表。所以,我通过在servlet中启动查询创建了一个Box对象列表,并在请求属性中将该列表传递给jsp,然后在jsp中访问它。直到这一切都好起来。但现在我必须访问BoxCat对象,它没有直接从Box对象中引用任何内容。为了得到BoxCat对象,我必须将Userid和Box id结合起来,然后才能得到BoxCat id。所以在scriptlet中,我调用我的DAO并通过运行查询获得列表。但是我不知道怎么做这个JSTL。有谁能帮我做这件事吗?

    你应该重新设计或映射你的模型,使之适合你的视图需要的任何东西。视图是否需要
    列表
    作为
    用户
    的属性,或者可能需要
    BoxCat
    作为
    Box
    的属性?如果是这样的话,那么就这样做,并更改您的控制器和DAO以预先填充它


    否则,您将使用实体ID的映射(如
    Map
    )来解决笨拙且内存效率低下的问题

    您应该重新设计或映射您的模型,使其适合您的视图需要。视图是否需要
    列表
    作为
    用户
    的属性,或者可能需要
    BoxCat
    作为
    Box
    的属性?如果是这样的话,那么就这样做,并更改您的控制器和DAO以预先填充它


    否则,您将使用实体ID的映射(如
    Map
    )来解决笨拙且内存效率低下的问题

    映射如下:用户可以有多个框。Box可以有多个BoxCat。只有一个BoxCat用于用户和box的唯一组合。在jsp上,我有一个框列表,必须为登录用户显示与该框关联的boxCat名称。我如何做到这一点?在scriptlet中,我运行以下查询:
    “从boxcat中选择*,其中box_id=“+box.getId()+”和user_id=“+user.getUserId()”;“
    并获取boxCat对象,但我无法在JSTL中执行相同的操作。如果您确实无法相应地更改模型,那么最好将当前用户的所有
    boxCat
    项加载到
    映射中,其中键是
    ID。然后,在EL中,您只需执行
    ${boxCat[Box.ID].name}
    显示名称。或者您甚至可以有一个
    映射,其中值是框名称。我是否必须在请求属性中传递该映射?当然,否则
    ${boxCats}
    将不提供任何内容:)映射如下:用户可以有多个Box。Box可以有多个BoxCat。对于用户和Box的唯一组合,只有一个BoxCat。在jsp上,我有Box列表,并且必须为登录用户显示与该框关联的BoxCat名称。我如何做到这一点?在scriptlet中,我运行此查询:
    ”选择*from boxcat where box_id=“+box.getId()+”和user_id=“+user.getUserId()”
    并获取boxcat对象,但我无法在JSTL中执行同样的操作。如果确实无法相应地更改模型,那么最好将当前用户的所有
    boxcat
    项加载到
    映射中,其中键是
    box
    id。然后,在EL中,只需执行
    ${boxCats[box.id].name}
    即可显示名称。或者您甚至可以有一个
    映射
    ,其中值是框名称。我是否必须在请求属性中传递该映射?哦,当然,否则
    ${boxCats}
    将不提供任何信息:)