<s:textfield>标签中的name可以使用“实体bean.属性”,不知该实体是如何声明的?
在试过的一个例子中,我没有发现在使用该标签的页面有声音过使用的那个实体,也没有发现有哪个类或页面有传过这样的实体,想请高手解释一下这个实体是如何声明的,或是其它什么办法使用他可以被使用,且可以在action中使用实体的属性

解决方案 »

  1.   

    <s:textfield name="user.username" lable="用户">user那么表示在action中定义了一个user对象,里面有username属性 
      

  2.   

    谢谢楼上!我按你说的理解做了一个练习,但是不能成功,代码如下:
    bean————
    package action;public class TestBean {
    private String str;
    public void setTb(String tb) {
    this.str = tb;
    }
    public String getTb() {
    return str;
    }}action————
    package action;import com.opensymphony.xwork2.ActionSupport;public class Test extends ActionSupport {
    TestBean tbn=new TestBean();

    public String list(){
    System.out.println(tbn.getTb());
    //System.out.println("sad");
    return SUCCESS;
    }
    }struts.xml————
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts PUBLIC 
    "-//Apache Software Fountdation//DTD Struts Configuration 2.0//EN" 
    "http://struts.apache.org/dtds/struts-2.0.dtd"><struts>
    <include file="struts-default.xml"></include>
    <package name="struts2" extends="struts-default" namespace="/userManage">
    <action name="List" class="user.action.UserAction" method="list">
    <result name="success">list.jsp</result>
    </action>
    <action name="Store" class="user.action.UserAction" method="store">
    <result type="redirect">List.action?department_id=${userinfo.department_id}</result>
    </action>
    </package>
    </struts>提交JSP————
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
        <%@ taglib uri="/struts-tags" prefix="s" %>
        <script src="js1.js">
    <!--//-->
    </script>
        <script src="js2.js">
    <!--//--></script><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    <input type="button" value="测试JS" onclick="js1_f()">
    <s:form action="List.action">
    <s:textfield name="tbn.str" label="测试BEAN" ></s:textfield>
    <s:submit value="提交"></s:submit>
    </s:form>
    </body>
    </html>——————————————————我想实现的是在页面中的textfield中填写一个值,其name就是action声明的bean的名称.属性,提交后,将填写的值在后台打印出来。上述代码执行后,打印的值为null,并不是填写的值;如果把上述代码的action中bean的声音,不作new TestBean(),则报空指针错误。
    请高手明示原因。
    谢谢!!!!
      

  3.   

    public class TestBean {
    private String str;
    public void setStr(String tb) {
    this.str = tb;
    }
    public String getStr() {
    return str;
    }}
      

  4.   

    TestBean tbn=new TestBean();action  不要new 
    private TestBean tbn;  get,set下
      

  5.   

    struts2简化得实在太厉害了,代码量减少了,但可读性也差了。
      

  6.   


    你的bean里面的每个属性,要有对应的get、set方法。比如属性为private String aaa,则对应有getAaa()和setAaa(String  aaa)方法.注意get/set方法要与属性名严格对应。你这里就是属性str,而方法却是Tb,所以不行。