Name Required Default Type Description name true String The name of the new variable that is assigned the value of value scope false action String The scope in which to assign the variable. Can be application, session, request, page, or action. value false  Object/String The value that is assigned to the variable named name id false  Object/String id for referencing element. For UI and form tags it will be used as HTML id attribute 

解决方案 »

  1.   

    <s:set>是将某个值绑定到一个变量的标签.有点类似于从另外一个地方拿值,赋于一个新的变量,并把它存在某个作用域中,可以是requset,session,application, page,action中。
    id 表示 为这个引用的元素赋一个id值,就象为页面中的表单form增加一个id.
    name 表示 变量名.
    scope 表示 这个变量存在哪个作用域.
    value 表示 这个变量的值,可以从其他地方拿.
      

  2.   

      简单点说,就如用JSP的内置对象(session.setAttribute("att","ssss"))设置属性值一样.
      id:对相对象的引用
      name:相当于att
      scope:想当于当前的属性为session的作用域,当然也可以为pagecontext,request,application;
      

  3.   

    set标签是将某个值放到指定范围内, 比如说 student.teacher.parent.age 每次访问这个属性不仅性能低,而且代码可读性很差,为了解决这个问题,可以将这个值设置为一个新值,并且放入指定范围内
    name 是必填属性,是重新生成的新变量的名字
    scope 可选属性,指定新变量被放置的范围,可以接受application,session,request,page,action 这5个值 没有指定默认是Stack Context中
    value 可选属性,指定变量的值 如果没有指定,使用ValueStack栈顶的值赋给新变量
    id 可选属性,指定新元素的引用ID下面是个例子:<!-- 使用bean标签定义一个javaBean实例--!>
    <s:bean name="lee.Person" id="p">
    <s:param name="name" value="zhangsan"/>
    <s:param name="age" value="29"/>
    </s:bean>
    将p放入默认范围内
    <s:set value="#p" name="test"/>
    <s:property value="#test.name"/><br>
    <s:property value="#test.age"/><br>
    将p放入application范围内。
    <s:set value="#p" name="test" scope="application"/>
    <s:property value="#attr.test.name"/><br>
    <s:property value="#attr.test.age"/><br>
    将p放入session范围内。
    <s:set value="#p" name="test" scope="session"/>
    ${sessionScope.test.name}<br>
    ${sessionScope.test.age}<br>
      

  4.   

    赋的值如果是一个表达式,基本都会,我看了楼上的各种回答,清一色的都是赋的表达式,都没有赋常量的例子,
    我现在也补充一个,如果value中要赋的是常量,如果直接
    <s:set name="page2" value="listMaterialEnt"  scope="session"></s:set>
    这样在页面中是访问不到listMaterialEnt这个字符串,怎么样才能赋这个字符串常量值呢?加个单引号就搞定,这个也是我研究了半天才研究出来,如下:
    <s:set name="page2" value="'listMaterialEnt'"  scope="session"></s:set>
      

  5.   

    可以用<s:set />定义以个常量吗?
    如 <s:set name="str" value="sssss" />
    value 中的值就是以个常量可以吗?
    可以的话怎么访问?
      

  6.   

    要这样写:<s:set name="str" value="'sssss'"/>
      

  7.   

    那么如何定义一个常量加变量的字符串session呢?
      

  8.   

    如果 scope=“action” Stack Context中也会有一个这个变量