【问题标题】:Display different images from an action in a JSP在 JSP 中显示来自动作的不同图像
【发布时间】:2012-04-06 16:00:57
【问题描述】:

我有一个迭代用户列表的 jsp 页面。每个用户都有自己的显示图片。我要显示这些显示图片。

问题在于,当页面加载时,所有图像都是相同的,而不是为每个用户提供不同的图像。

迭代器中的图片标签是这样的:

                    <img src="<s:url action="getUserImage">
                        <s:param name="user">
                             <s:property value="userId"/>
                        </s:param>
                    </s:url>"/>

动作看起来像这样

this.inputStream = ByteArrayInputStream(userService.getUserById(Integer.parseInt(user)).getDisplayPicture());

在调试时我发现,在为每个图像执行操作时,'user' 属性总是相同的。

有趣的是,当我在浏览器上检查 imgs 元素时,src 参数都是正确的(意味着它们每个都有自己不同的值)。

我正在使用 spring 框架,自动连接动作类 .. struts.objectFactory value="spring"

【问题讨论】:

  • “所有图像都是相同的,而不是每个用户的不同图像。” 似乎与 矛盾“当我在浏览器上检查 imgs 元素时, src 参数都是正确的(意味着它们每个都有自己不同的值)。” 你确定这两个陈述都是正确的吗?
  • 是的,我确定。我知道这很有趣。显示的图像都是一样的,但它们的 src 参数是应该的。
  • 如果 url 参数正确,但无论 url 参数如何,您都得到相同的图片,那么您的 userService.getUserById 每次都必须返回相同的图片。因此,它可能不是 struts2 的问题。
  • 它并不总是重复的相同图像。如果我自己使用网址,它会完美运行。

标签: java image jsp struts2 inputstream


【解决方案1】:

userService.getUserById(Integer.parseInt(user) 不应该是userService.getUserById(Integer.parseInt(userId) 吗?

【讨论】:

  • 如果用户持有一个整数,为什么它在 Struts2 中是一个字符串?这不是你的问题……但应该解决。
  • 因为我有其他用途需要它是一个字符串
【解决方案2】:

@组件 @Scope("原型")

成功了!

action 类为每个请求重用相同的 id

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多