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.
解决办法:
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern><!--过滤主要操作 -->
</filter-mapping>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.jsp</url-pattern>
<!--因为若在jsp页面使用struts标签,就必须经过FilterDispacher的过滤,这样配置便可保证所有的jsp都经过FilterDispatcher了,否则要为每一个jsp写配置一个action地址转入-->
</filter-mapping>
2.在使用struts标签的过程中,会生成一些table,td标签并且标签自动换行,去除的方法如下:
1.在标签中加theme="simple"
<s:textfield name="userName" theme="simple" ></s:textfield>--普通文本框的使用
2.在struts.xml文件中进行配置:
<constant name="struts.ui.theme" value="simple" />
这便可去除标签并解决自动换行的问题。
3.ognl表达式不能直接访问static方法的问题
今天在页面直接用ognl调用方法:
<s:property value="@com.DateUtil@getTimeArray()"/>来获取时间,但始终进不去方法。
后来把此代码拷到另外一个工程中,就可以正常调用方法了。
查了网上资料,原因如下,有些struts2的配置项里其中有一个名为struts.ognl.allowStaticMethodAccess的配置项默认是false;
解决办法:
在struts.properties中配置:
struts.ognl.allowStaticMethodAccess=true
或者
在struts.xml中配置:
<constant name="struts.ognl.allowStaticMethodAccess" value="true" />
可直接调用方法:
eg: <a
href="http://v.t.sina.com.cn/share/share.php?url=http://<s:property value="couponDetailVO.cityGbName"/>.koubei.com/youhuiquan/<s:property value="couponDetailVO.id"/>&title=<s:property value="@java.net.URLEncoder@encode(couponDetailVO.name,'UTF-8')"/>"
class="k2-icon-node-m k2-icon-s-sina" target="_blank">分享到新浪微博</a>
问题解决
分享到:
相关推荐
Struts2的每个新版本通常会包含对前一版本的兼容性改进,但有时也会引入一些不兼容性,因此升级过程中需要注意以下几点: 1. **依赖库的更新**:升级Struts2的同时,还需要检查和更新所有依赖的库,例如在提供的...
在Struts2中,实现国际化通常涉及以下几个步骤: 1. **创建资源束文件**:在项目的`src/main/resources`目录下创建对应的资源文件,比如`messages.properties`作为默认语言(通常是英文),然后根据需要添加其他...
Velocity 模板引擎提供了强大的语法,如#if 与#else 条件判断、#foreach()循环等,但由于 Struts2 框架本身提供的标签已经很强大,所以可以直接使用 Struts2 的标签。 Velocity 模板引擎还提供了内建变量,如 stack...
Struts 2的核心jar包通常包括以下几个部分: 1. **struts2-core.jar**:这是框架的基础,包含了核心控制器、Action、拦截器、结果类型等核心组件。这个包使得开发者可以创建Action类来处理HTTP请求,并定义业务逻辑...
集成CKEditor到Struts2项目中,通常包括以下几个步骤: 1. **引入CKEditor资源**:将解压后的CKEditor文件夹放置在项目的公共静态资源目录下,如WEB-INF下的`resources`目录。这样可以通过URL路径直接访问到编辑器...
Struts2 OGNL是一个关于Java Web开发中的关键知识点,主要涉及到的是Apache Struts2框架与Object-Graph Navigation Language(OGNL)的结合使用。Struts2是一个流行的MVC(模型-视图-控制器)框架,它极大地简化了...
Struts2是一个非常流行的Java Web框架,用于构建和维护可扩展且易于管理的企业级应用程序。...如果需要进一步分析,可以查看这个文件中的`<title>`标签以及相关的Struts2标签,看看标题是如何被构造和展示的。
SSH框架中的分页通常涉及到以下几个关键知识点: 1. **Struts2分页**:Struts2作为MVC框架,负责控制层逻辑。它可以通过拦截器、结果类型或者自定义插件来实现分页。例如,可以使用DisplayTag或JSTL标签库来展示...
上面的代码中的逻辑表达式用括号括起来主要是因为里面有>符号,由于FreeMarker会将>符号当成标签的结束字符,可能导致程序出错,为了避免这种情况,我们应该在凡是出现这些符号的地方都使用括号. Pythons are ...
在SSH框架中,分页主要涉及以下几个部分: 1. **Action层**:这是业务逻辑的入口,负责接收前端请求,调用Service层方法,并将返回的数据传递给JSP页面。在Action类中,我们需要定义分页参数,如当前页数、每页显示...
创建了几个String Object? 两个 31、EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的? SessionBean: Stateless Session Bean 的生命周期是由容器决定的,当客户机发出请求要建立一个...
在Web开发中,`<textarea>`标签用于创建一个多行的文本输入框。与`<input type="text">`不同,`<textarea>`可包含多行文本,并在用户界面上显示为一个可滚动的文本区域。它常用于在线论坛、评论区以及需要用户输入更...
尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得东南大学或其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已...