下载struts2-dojo-plugin-2.2.3.1.jar,放到/WEB-INF/lib里
在jsp中引入tag
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags"%> <%@ taglib prefix="sx" uri="/struts-dojo-tags"%>
在<head></head>中加入<sx:head />,<SX:HEAD/>的作用是自动导入struts2 dojo的js和css
<head> <title>测试</title> <sx:head /> </head>
使用datetimepicker标签
<body> <sx:datetimepicker label="时间" name="time" displayFormat="yyyy-MM-dd" value="%{2011-01-01}" /> </body>
加入按照之前的步骤,仍然无法显示,我刚才遇到的情况就是如此,chrome查看页面源码发现下面的代码都已经生成,但是直接打开/test/struts/ajax/dojoRequire.js 发现资源不存在
<script language="JavaScript" type="text/javascript"> // Dojo configuration djConfig = { isDebug: false, bindEncoding: "UTF-8" ,baseRelativePath: "/test/struts/dojo/" ,baseScriptUri: "/test/struts/dojo/" ,parseWidgets : false }; </script> <script language="JavaScript" type="text/javascript" src="/test/struts/dojo/struts_dojo.js"></script> <textarea id="dojo.widget.RichText.savedContent" style="display:none;position:absolute;top:-100px;left:-100px;height:3px;width:3px;overflow:hidden;"></textarea> <script language="JavaScript" type="text/javascript" src="/test/struts/ajax/dojoRequire.js"></script> <link rel="stylesheet" href="/test/struts/xhtml/styles.css" type="text/css"> <script language="JavaScript" src="/test/struts/utils.js" type="text/javascript"></script> 。。。
遇到这种情况的时候,请检查web.xml的struts配置,假如struts filter的mapping不是对所有url过滤
那么请加入/struts/*,问题解决
<filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>*.action</url-pattern> <dispatcher>REQUEST</dispatcher> <dispatcher>FORWARD</dispatcher> </filter-mapping> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/struts/*</url-pattern> </filter-mapping>