Struts2——常用标签(数据回显)

来源:互联网 发布:mysql 默认排序 编辑:程序博客网 时间:2024/06/01 22:53

textfield标签数据回显(name回显)

  注意:区别与其他标签的value属性进行回显

<s:textfield name="content"/>
<s:property value="content"/>

  以上两种方式不同之处在于textfield在一个文本框里面回显,而property直接在一个空白处(类似label)回显。
  
  例如下面这个标签有两种方式(name赋值)实现回显: 

<td><s:textfield name="user.username"/></td>
  • 1) 将user作为action的实例变量

    Action跳转时是这样的

public class UserAction extends ActionSupport {    private User user;    ......    public String editUI()    {        user = userService.findById(user.getId());        return "editUI";    }}
  • 2)如果user 不是实例变量

    Action跳转时是这样的

public String editUI() {    User user = new User();    ActionContext ac = ActionContext.getContext();    /************* 数据回显***************/    // 获取值栈    ValueStack vs = ac.getValueStack();    vs.pop();// 移除栈顶元素    vs.push(user);  // 入栈       // 进入修改页面    return "editUI";}

并且这时的标签可以简写为:

<s:textfield name="username"/>

  综上所述,要想完成数据回显,必须将要回显的对象放在ValueStack的根元素上。这样Ognl表达式才能取到值,实现回显。


select标签数据回显

  • struts2的select标签中,常用属性:

    (1)list:创建列表的可迭代数据源, 必设项(list必须有值,如果没值则必须设置headerKey, headerValue)。如果该列表是一个Map(key, value), 那么Map的主键将作为选项()的”value”属性, 而该主键对应的值作为选项的文本内容.是必须设置的选项,如果是一个List或者是一个Set,那么可以通过listKey和listValue指定。
    (2)headerKey:设置列表的题头主键值. 一定不能为空值! “’-1’”或”””是正确的取值, “”是错误的取值。
    (3)headerValue:列表的题头选项值。
    (4)listKey:列表数据源中元素对象的属性, 用于获取选项的值,对应于select标签中的value。
    (5)listValue:表数据源中元素对象的属性, 用于获取选项的文本内容,对应于select标签中的option。
    (6)name:元素的名字。

jsp页面:

<!-- 因为提交的本来就是listkey,将list选项中对应的选项的id,赋值name属性(transferHistory.newSeller.id) --><!-- 提交表单save的时候,进行javabean数据封装,封装到transferHistory对象中 --><s:select     name="transferHistory.newSeller.id"    list="#request.listEmployee"    headerKey="-1"    headerValue="请选择"    listKey="id"    listValue="name"></s:select>

Action页面:

public String viewEdit(){    // 主键查询客户对象    if (customer != null){        customer = customerService.findById(customer.getId());    }    // 查询所有的营销人员(jsp页面用户选择)    List<Employee> list = employeeService.getAll();    request.put("listEmployee", list);    return "edit";}

property标签数据回显

  直接通过value值进行回显
jsp页面:

<s:property value="content"/>

Action页面:
  同select标签上的Action页面


  另外对于像下面这样的标签也能很方便的完成数据回显:

<s:radio name="gender"  id="gender" list="#{'男':'男','女':'女'}"></s:radio>
<s:select list="#session.departlist" listKey="id" listValue="dname" name="depart" ></s:select> 
原创粉丝点击