刚过去的项目中使用了一把struts2。由于搭配jsp页面前台展示而不是我习惯的velocity,因此不免要学一下struts2中的ONGL标签。。。发现用起来还是很头疼的。。经常搞不清楚%,#怎么用。

1.先解决最基础的温饱问题:如何把action中的值带到页面展示出来

(先定义一个action,有个 username字段,假设value="song"想传递到页面上)

public 
    
  class 
   Login  
  extends 
   ActionSupport  
  ... 
  {

    privateusername;
    
    public String execute() throws Exception ...{
        return INPUT;
    }

    public String getUsername() ...{
        return username;
    }

    public void setUsername(String username) ...{
        this.username = username;
    }

}


  下面是页面上显示username的一些尝试:


struts2的ONGL标签详解--1_jsp页面

================ 直接把值显示出来。。。

=====================< br >

 1.s:property标签   <s:property value="username"/>    


 2.$符号表达式     $ ...

{username}            

struts2的ONGL标签详解--1_jsp页面


 

上面的两种方式都是可以显示"song"出来的,如果只用来显示,推荐 $

... {username} ,简单明了。不过$ ... {}不可以放在struts2自带的<s:xxx > 标签中混用,会报不支持变量表达式异常。


struts2的ONGL标签详解--1_jsp页面

===============

 用#试一下。。。 =====================< br >

struts2的ONGL标签详解--1_jsp页面


1.#表达式                   #username           
                                                            失败,页面输出"#username   "

  2.s:property标签1:  <s:property value="#username"/>
                                                             失败,页面无输出

  3.s:property标签2:       <s:property value="#request.username"/> 
                                                             成功,页面输出"song"(这种属性放进了request中)

  4.s:property标签3:  <s:property value="#session.username"/> 
                                                            失败,页面无输出(没有放到session中)
                  
=============== 用%试一下。。。=====================<br>        
                            
1.%表达式                    %...{username}                                
                                                           失败,页面输出"%{username}"

2.%表达式                    %...{'username'}                                
                                                          失败,页面输出"%{'username'}"

3.s:property标签4:       <s:property value="%{username}"/>
                                                        成功,页面输出"song"

4.s:property标签Error4:  <s:property value="%{'username'}"/>
                                                      失败,页面输出"username" 

测试了一大把,最后总结出了4种拿到值得办法: 

 <s:property value="username"/> 

${username}     

<s:property value="#request.username"/>  (#session. #application.类似) 

<s:property value="%{username}"/>

未完。。。。待续