【问题标题】:How can I give a hyperlink in a struts2 iterator如何在 struts2 迭代器中提供超链接
【发布时间】:2015-04-04 20:12:09
【问题描述】:

我正在使用struts 2 iteratorJSP 上打印ArrayList(学生的详细信息)字符串。由于ArrayList 中的详细信息数量更多,我想保留一个指向其中一个字段的超链接,这样每当用户点击任何学生的姓名时,该学生的其他详细信息就会出现。就像那个点击调用一个动作,我可以从那里去一个道来获取那个学生的其他细节。

我的问题是如何在迭代器中保留指向元素的超链接,即使那样如何将名称传递给操作?谁能帮我解决这个问题?

    <table class="display" border="1">
<tr>
    <th>Username</th>
    <th>Role</th>
    <th>Name</th>
    <th>Surname</th>
    <th>Contact number</th>
    <th>Email</th>
</tr>
<s:iterator value="list">
    <tr>
        <td><s:property value="userName"/></td>
        <td><s:property value="role"/></td>
        <td><s:property value="name"/></td>
        <td><s:property value="initial"/></td>
        <td><s:property value="contact"/></td>
        <td><s:property value="email"/></td>
    </tr>
</s:iterator> 

让我们说这打印__aadya__, __rolenum__, __name__, __surname__, __contact__, __email__。当最终用户点击用户名时,他应该能够获得 aadya 的其他详细信息。

【问题讨论】:

  • 您有什么具体问题?只需使用 S2 标签。

标签: java jsp struts2


【解决方案1】:

您可以在several ways 中执行此操作。

  1. 急切地加载详细信息,并在隐藏的情况下呈现页面

    如果您的表格是分页的(并且应该分页),并且例如每页显示 10 或 50 行,您可以评估是否需要调用操作,或者是否可以/方便地加载所有学生以及他们的详细信息,将它们隐藏在页面中。此时,点击用户名会触发一个简单的 javascript 来显示/隐藏该学生的详细信息,这些信息已经在页面中。

  2. 使用表单帖子加载详细信息

    用一个指向加载学生详细信息的操作的表单包围每个用户名,并包含一个带有 id 的隐藏参数,或将其放在查询字符串中。

  3. 使用 AJAX 调用加载详细信息

    将 Javascript 事件附加到元素(锚点、div、td 本身等...),对加载学生详细信息的操作执行 AJAX 调用,解析响应(可以是 JSON,或JSP sn-p 或 Stream...)将其放入页面中(通过手动创建 HTML 元素,或将响应原样注入目标 div)。 SO上有几个例子,比如thisthis。请记住不要对 AJAX 使用 struts2-dojo 标记,因为它们在很久以前就被弃用了……使用原始 jQuery(在这种情况下更好)或 Struts2-jQuery-plugin(相同)。

解决方案 1 速度超快,我想这正是您所需要的。解决方案 3 也不错,因为像解决方案 2(旧方式)一样,为了获取单个数据对象而重新发布整个页面是一种耻辱。

【讨论】:

  • 我在 jQuery 中使用过 ajax。 &lt;td&gt;&lt;a href="#" class="userName" id='&lt;s:property value="userName"/&gt;'&gt;&lt;s:property value="userName"/&gt;&lt;/a&gt;&lt;/td&gt; 我的脚本是 &lt;script type="text/javascript"&gt; $('.userName').click(function(){ var id = $(this).attr('id'); var ajax = new XMLHttpRequest(); ajax.open("POST","getUserDetails",false); ajax.send(id); }); &lt;/script&gt; 我在这里获取用户名。我可以得到这个特定用户的角色吗?
  • 你可以,但你不应该。获得用户 ID 后,在操作中加载其角色及其服务器端详细信息。否则,用户只需使用 firebug 编辑页面即可获得角色
猜你喜欢
  • 2011-08-24
  • 2011-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-20
  • 2019-12-11
  • 1970-01-01
相关资源
最近更新 更多