java - 使用 displaytag 和 Struts 1.3 的 JSP 表格中的按钮列

标签 java jsp dispatcher struts-1 displaytag

我需要显示包含用户列表(idname 等)的表格,并将用于删除指定用户的按钮放在最后一列中。像这样:

############################
| ID | name | ... | button |   
| ID | name | ... | button |
############################

我写过这样的代码:

<form action="/Struts/DeleteUser.do" name="myForm" id="myForm" method="post">
    <display:table name="sessionScope.AllUsersForm.usersList">
       <display:column property="id" title="ID" />
       <display:column property="name" title="Name" />
       ...........
       <display:column title="Delete">
            <input type="submit" value="Delete user" />
       </display:column>
    </display:table>
<form>

那么我如何识别我的 Action 类中按下的按钮呢?我已经尝试将一个隐藏字段放入带有按钮的部分并更改它的值,但没有任何反应。

更新:

我已经解决了问题。我用过这个:

<display:table name="sessionScope.AllUsersForm.usersList" 
  <%-- This ==> --%> id="item" <%-- <=== --%> >     
  ........
  <input type="submit"  value="Delete user" 
     onclick="document.getElementById('pressedButton').value = ${item.id}"/>

并创建隐藏字段:

<input type="hidden" name="pressedButton" id="pressedButton" /> 

最佳答案

例如,您可以通过给按钮命名来轻松做到这一点

<input name="action" type="submit" value="Delete user" />

现在在 bean 中,你的 case form bean 关联到 Action ,你应该创建一个属性

private String action;
public void setAction(String action){
  this.action = action;
}
public String getAction(){
  return action;
}

Struts 1 使用 commons beanutils 来填充表单 bean。当您提交表单时,字段值将通过 setter 填充。按钮字段也不异常(exception)。因此,它的值也将设置为 action 属性。然后你可以通过

检查它
if (action != null && action.equals("Delete user")){
  System.out.println("Button is: "+action);
}  

识别和执行按钮事件的最自然的 Struts 1 方法是与按钮一起分派(dispatch)消息键值。例如

<html:submit><bean:message key="button.delete"/></html:submit>

"button.delete"是一个消息资源键,应该在MessageResource.properties文件中

button.delete = Delete user

该操作应实现 LookupDispatchAction 并覆盖

@Override
public Map getKeyMethodMap() {
  Map<String, String> map = new HashMap<String, String>();
  map.put("button.delete", "delete");
  return map;
}

然后当执行操作时,它将分派(dispatch)到 map 中指定的方法。在此示例方法中,delete

关于java - 使用 displaytag 和 Struts 1.3 的 JSP 表格中的按钮列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17126293/

相关文章:

java - 如何避免 Java 中的多个 If 语句?

javascript - 将 CSS 样式表与 Javascript .innerHTML 结合使用

c# - 如何在 WPF 应用程序中的任何位置获取调度程序

wpf - 绑定(bind)到在单独的线程上更新的ObservableCollection的WPF DataGrid无法维护排序

java - 如何使用ImageIO将多个BufferedImage保存到文件中

java - 在 Android 应用中仅显示截止日期为今天的待办事项

java - 从属性文件中读取 Maven SCM url 值

java - JSP 无法从输入中获取值

mysql - 从 MySql 数据库中选取值并填充 Struts 2 中的选择标记

c# - DispatcherOperations.Wait()