<select name="categoryId" id="select">
    <s:set var="cid" value="blog.id"/>  
    <s:iterator value="list" id="category">
        <s:if test="#category.id==cid">
              <option value="<s:property value='#category.id'/>" selected>
               <s:property value='#category.name'/></option>
        </s:if>
        <s:else>
             <option value="<s:property value='#category.id'/>"><s:property value='#category.name'/></option>
        </s:else>
    </s:iterator>
 </select>这里的test判断有什么问题,要怎么写才对?还有一个问题,要是在的jsp页面想用jstl,怎么从action获取属性值,我看了一些资料说要写什么拦截器,大家现在是怎么用的,教教小弟!

解决方案 »

  1.   

    <s:if test="id==#cid">
    ....获取action的属性值可以用el, 这个原因是因为那个request已经不是HttpRequest对象了,
    是被struts包装过的, 如果在所有的作用域里面找不到你要的对象话, 会去ValueStack中搜的
      

  2.   

    <s:if test="#category.id==#cid">
      

  3.   

    用JSTL啊,因为JSTL在域上取变量,所以你在页面之前准备要在页面中使用的数据的时候记得将东西放request/session/application域就可以了。
      

  4.   


    那么要在action做哪些操作呢,能不能说一下,谢谢了!
      

  5.   

    你的Action这样写public class YourAction extends ActionSupport implements RequestAware,SessionAware,ApplicationAware{
    private Map session;
    public String execute(){
    session.put("key", objectWantedInPage );
    return SUCCESS;
            }
    @Override
    public void setApplication(Map<String, Object> arg0) {
    ...
    }
    @Override
    public void setSession(Map<String, Object> arg0) {
    session = arg0;

    }
    @Override
    public void setRequest(Map<String, Object> arg0) {
    ... }
    }页面中,记得引入JSTL标签库,然后用
    <c:if test="${使用objectWantedInPage的表达式}">
    这种方式访问域中预先准备的对象