如题,我看的教程是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中具体的使用步骤。感激不尽

解决方案 »

  1.   


    <%@ 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>
    <s:head />  
      </head>
      
      <body>
      <s:form action="" theme="ajax">
        <s:datetimepicker name="birthday" label="Birthday" />
      </s:form>
      </body>
    </html>
    注意红色的部分是否加上面,这样dojo才有效
      

  2.   

    感谢楼上大侠回贴。可是您说的是2.0中的用法吧。现在struts2.1里datetimepicker 这个标签已经不这么用了。
    <%@ taglib prefix="sx" uri="/struts-dojo-tags"%>
    <sx:datetimepicker>struts2-dojo-plugin-2.1.6.jar 这个文件也引入到lib里了据我所知新版本中这么写可是只按照这样的步骤写,还是报错。所以想请教新版本中正确详细的使用步骤
      

  3.   

    对于第二个问题,我建议你把token的拦截机放在第一的位置。
    第一个问题,我感觉好像是你在web.xml中配置的struts2的过滤器的过滤路径没有设置全
    因为使用ajax,要拦截/struts/*这样的路径。
      

  4.   

    <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>
    <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" /> 
    这段已经是写在package的紧下面了。可是我提交表单的时候只是url变成action的名字了,但不会执行action的业务方法,页面也是显示空白,这是怎么回事啊???
      

  5.   

    第一个问题你看看Struts2.1发布包的文档中有没有说明,
    第二个问题我觉得没必要用它的标签,感觉不好用,还不如自己写一个算法,那样可定制性还好些...
      

  6.   

    第一个问题:
    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" />
      

  7.   

    源码是这样的:
    引入dojo类库
    <%@ taglib prefix="sx" uri="/struts-dojo-tags" %><sx:head extraLocales="en-us,nl-nl,de-de" /><sx:datetimepicker label="With value='today'"  name="dddp1" value="%{'today'}" />
      

  8.   

    不用引入头文件,直接写在<s:form></s:form>中就行.但必须<s:form theme="xhtml">这种形式