struts2标签使用需注意的几个地方

阅读更多

1.在jsp页面上直接使用struts2的s标签,要求必须经过FileterDispatcher过滤,否则总会报错 
org.apache.jasper.JasperException: The Struts dispatcher cannot be found.  This is usually caused by using Struts tags without the associated filter. Struts tags are only usable when the request has passed through its servlet filter, which initializes the Struts dispatcher needed for this tag. 

解决办法: 

Xml代码   收藏代码
  1. <filter>  
  2.         <filter-name>struts2filter-name>  
  3.         <filter-class>org.apache.struts2.dispatcher.FilterDispatcherfilter-class>  
  4.     filter>  
  5.     <filter-mapping>  
  6.         <filter-name>struts2filter-name>  
  7.         <url-pattern>*.actionurl-pattern>  
  8.     filter-mapping>  
  9.     <filter-mapping>  
  10.         <filter-name>struts2filter-name>  
  11.         <url-pattern>*.jspurl-pattern>  
  12.   
  13.     filter-mapping>  






2.在使用struts标签的过程中,会生成一些table,td标签并且标签自动换行,去除的方法如下: 
1.在标签中加theme="simple" 
--普通文本框的使用 
2.在struts.xml文件中进行配置: 
 
这便可去除标签并解决自动换行的问题。 

3.ognl表达式不能直接访问static方法的问题
 

今天在页面直接用ognl调用方法: 

来获取时间,但始终进不去方法。 

后来把此代码拷到另外一个工程中,就可以正常调用方法了。 

查了网上资料,原因如下,有些struts2的配置项里其中有一个名为struts.ognl.allowStaticMethodAccess的配置项默认是false; 

解决办法: 
1
在struts.properties中配置: 

Xml代码   收藏代码
  1. struts.ognl.allowStaticMethodAccess=true  



或者 

在struts.xml中配置: 

Xml代码   收藏代码
  1. <constant name="struts.ognl.allowStaticMethodAccess" value="true" />  

 

2,把你的方法改成静态

 

public static List kechengSelect()
{
String sql="from kecheng where del='no'" ;
List kechengList=kechengDAO.getHibernateTemplate().find(sql);
return kechengList;
}

可直接调用方法: 
eg:                           href="http://v.t.sina.com.cn/share/share.php?url=http://.koubei.com/youhuiquan/&title=
                          class="k2-icon-node-m k2-icon-s-sina" target="_blank">分享到新浪微博 
问题解决 

你可能感兴趣的:(struts,ognl)