我的问题非常类似于这个问题: Is it possible to access struts2 variable in jsp scriptlet?
在我的.jsp页面中,我有一个表单,我想在其中预设一个文本字段到当前日期。我唯一的问题是“值”在使用Struts时不支持运行时表达式 - 这是有道理的,我希望尽可能多地保留JSP中的Java。但这让我很难让变量摆脱一个动作。 我目前正在运行Tomcat v7.0和Eclipse Java EE IDE for Web Developers。版本:开普勒服务版本2.
在我的.jsp页面中我有:
<s:set var="currentDate" value="currentDate"/>
<s:property value="currentDate"/>
<s:form action= "updateAction">
<s:textfield name="dateUpdated" key="label.dateUpdated" size="20" value="%{currentDate}" />
<s:submit method="execute" key="submit"/>
</s:form>
现在我有三个动作 - 一个到达此页面(ToPageAction),一个用于提交表单(UpdateAction),一个用于获取currentDate变量(GetCurrentDateAction)。
我想我会疯了&gt;。&lt;
无论如何,获取currentDate变量的操作称为GetCurrentDateAction,如下所示:
public class GetCurrentDateAction extends ActionSupport {
SimpleDateFormat date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
public String currentDate = date.toString();
public String getCurrentDate(){
return currentDate;
}
public void setVariable(String currentDate){
this.currentDate=currentDate;
}
public String execute() throws Exception{
return SUCCESS;
}
}
另外在struts.xml中我有:
<action name="getCurrentDateAction"
class="net.upsmon.struts2.action.GetCurrentDateAction">
<result name="success">AlertPersistencyView.jsp</result>
</action>
我已经阅读了很多次链接的问题,并尝试正确格式化自己的struts,但发现自己迷路了。我不确定答案是否只是误导,或者我只是不理解我觉得这个问题不难解决。在我的.jsp页面中,我有一个属性标记来向我自己证明我将变量放入.jsp但它还没有工作。另外我的文本字段是空白的。有什么建议让我把这个变量放到我的.jsp中吗?我可以为解决方案提供任何其他信息吗?我非常了解Struts的基础知识,欢迎任何建议。
另外一条信息:我一直在查看this博客,以便找出我的问题,但仍未提出解决方案。
答案 0 :(得分:1)
如果您正在使用JSP,根据您的问题标题的格式,我的理解就是您正在做的事情,我会像这样格式化(取决于您希望日期看起来如何改变日期的方式建成)。你可以这样做
<%@page import="java.text.SimpleDateFormat, java.util.Calendar, java.text.DateFormat"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Date Tester</title>
</head>
<body>
<%
DateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy");
Calendar cal = Calendar.getInstance();
%>
<form>
<label for="date">Your Text Field: </label><br/>
<textarea type="" name="date" value="" >Today's Date: <%= dateFormat.format(cal.getTime()) + "\n" %></textarea>
<!-- The rest of your form here -->
</form>
</body>
</html>
我希望这有帮助!如果不发表评论,我会再试一次。
答案 1 :(得分:0)
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML = Date();
</script>
答案 2 :(得分:0)
您可以尝试JSP Standard Tag Library并始终尝试避免 Scriptlet元素。示例代码:
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<jsp:useBean id="today" class="java.util.Date" />
<textarea>
<fmt:formatDate value="${today}" pattern="yyyy-MM-dd HH:mm:ss" />
</textarea>