0

每个带有用户的 Web 应用程序都需要执行一些可以从用户列表中调用的操作。像这样:

Login   Name    Lastname   Options
user1   name1   lastname1  ViewProfile Follow Ban
user2   name2   lastname2  ViewProfile Follow Ban
user3   name3   lastname3  ViewProfile Follow Ban

用户列表是从数据库中输出的 javabean 生成的。想像我们可以对用户进行的用户列表、他们的属性和选项的最简单方法是表格。该任务是对特定用户调用操作(ViewProfile、Follow、Ban、...)的实现。调用一个动作会将控制权转移到适当的 servlet。(所以我有 ViewProfile、Follow 用户、Ban 用户 ...)的 servlet。Servlet 只是准备数据并将其转发到某个 jsp 页面。这里没有问题。问题可能在于应该查看哪些用户配置文件或登录用户应该关注哪些用户(只需提供有关 user_id 的 servlet 信息)。

我发现了两种可以使用的方法(也许还有更多):
1)使用 ViewProfile 并且表格将真正表示为 html 中的表格。2)对每个动作使用表单。在这种情况下,对于树用户,我将有 9 个表单。每个表单都将输入 type="hidden" 值设置为 user_id 用于传输 user_id 和提交按钮。方法会贴出来。

解决方案的优缺点: 1)易于编写。但是参数在url中,方法只能是get。2)我可以使用方法post。但我不能像第一种情况那样使用表格,因为标签内不可能有表格。

将第二种情况格式化为表格(如第一种情况)的最佳方法是什么?
或者,如果有比我的两个选项更好的方法来解决这个问题,那是什么?

我使用 Java 7、Tomcat 7、Servlets、JSP 和 jslt、html5 和 CSS。

4

1 回答 1

0

在您的三个操作(ViewProfileFollowBan)中,第一个听起来像是 GET 的候选者,而另外两个听起来像 POST 操作。

对于 POST 到FollowBan servlet(和ViewProfile,如果需要),您可以使用表格之外的表格,这些表格是通过 JavaScript 在单击事件上填充和提交的。

<form id="followForm" action="...follow.do" method="post">
    <input id="followUserId" type="hidden" value="-1" />
</form>

<form id="banForm" action="...ban.do" method="post">
    <input id="banUserId" type="hidden" value="-1" />
</form>

单击侦听器附加到设置隐藏字段并提交表单的链接(通过类名)。

$(".followLink").click(function() {
    $("#followUserId").val($(this).prev().prev().text()); // navigate the table to get the user login id
    $("#followForm").submit();
});

请注意,为了简单起见,此解决方案使用 jQuery,但这也可以在没有外部 JavaScript 库的情况下使用onclick和更多工作来完成。

于 2013-01-15T19:57:47.570 回答