日期:2014-05-20  浏览次数:20747 次

请教struts2.1 中 <sx:datetimepicker>以及<s:token>的使用步骤
如题,我看的教程是2.0的,在2.0中<s:datetimepicker>很好实现,可是到了2.1里,一会报djconfig未定义,上网查说是<s:head theme="ajax"/> 我按着这个说法粘上之后,却报出一大堆异常来。。。搜来搜去也没有一个完整的使用步骤。

另外<s:token/>也是,我在表单里加上这句话了,并且按网上说的在struts.xml里也配置了拦截器。
<interceptors>
  <interceptor-stack name="myStack">
  <interceptor-ref name="token"/>
  <interceptor-ref name="tokenSession"/>
  <interceptor-ref name="defaultStack" />  
  </interceptor-stack>
  </interceptors>
  <default-interceptor-ref name="myStack" />
<action name="user_*" class="userAction" method="{1}">
  <result name="getUser">/getUser.jsp</result>
  <result name="invalid.token">/exception.jsp</result>
</action>

可就是达不到效果,不是提交表单直接跳到exception.jsp页,就是起不到防止重复提交的效果。

苦恼。。。。

请大侠能告知这两个标签在2.1中具体的使用步骤。感激不尽

------解决方案--------------------
HTML code

<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    [color=#FF0000]<s:head />[/color]  
  </head>
  
  <body>
  <s:form action="" theme="ajax">
    <s:datetimepicker name="birthday" label="Birthday" />
  </s:form>
  </body>
</html>

------解决方案--------------------
对于第二个问题,我建议你把token的拦截机放在第一的位置。
第一个问题,我感觉好像是你在web.xml中配置的struts2的过滤器的过滤路径没有设置全
因为使用ajax,要拦截/struts/*这样的路径。
------解决方案--------------------
第一个问题你看看Struts2.1发布包的文档中有没有说明,
第二个问题我觉得没必要用它的标签,感觉不好用,还不如自己写一个算法,那样可定制性还好些...
------解决方案--------------------
第一个问题:
1.struts2-dojo-plugin-2.1.2.jar引入到自己的项目中。
2.jsp中加入如下内容 
<%@ page language="java" pageEncoding="UTF-8"%> 
<%@ taglib prefix="s" uri="/ struts-tags" %> 
<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
 3.<head>中加入下列 
<head> 
。。。 
<s:head theme="xhtml"/> 
<sx:head parseContent="true"/>
</head> 
4.页面中使用 
<sx:datetimepicker name="birthday" value="%{date}" displayFormat="yy-MM-dd" />