java 时间周期控制器_关于java:使用Play框架使用日期调用控制器方法

这可能是一个愚蠢的问题(我有点像Play框架的新手),但是我真的没有运气,从本质上讲,我有一种显示方法

public static void viewDay( @As("dd-MM-yyyy") Date date) {

在/ day?date = 22-05-2011或其他任何地方通过网络访问时,哪种方法工作正常。

我的问题是,添加新记录后,我希望我的保存方法重定向回此页面。在正常情况下,这还算不错,但是由于我想在此处传递日期,因此遇到了一些麻烦。

我最初的想法只是以一种

viewDay(someDate);

方式传递日期对象(因为我已经能够处理其他DataTypes)

这会导致类似" ISO8601%3A2011-06-30T00%3A00%3A00%2B0100"的URL结尾。如果可以使用(即使不是很理想),我也可以接受,但是游戏似乎无法解密它,而是默认使用当前日期。

我也尝试将日期传递为以@As期望的格式设置的String格式,尽管这只会导致一些Type错误。删除@As(" dd-MM-yyyy")似乎也没有帮助。

在我看来,这似乎并不是一件很难的事情(尽管正如我所说的那样,我通常是Play和Java Web Framework的完整入门者),所以任何指针都将是一个很大的帮助。

谢谢,

卡尔

我的控制器的大致概述:

public class TimeRecordController extends Controller {

public static void index() {

//do stuff

}

public static void viewDay( @As("dd-MM-yyyy") Date date) {

//Do stuff (works fine when accessed via web)

//If page is arraived at via the save though url shows UTC date:"ISO8601%3A2011-06-30T00%3A00%3A00%2B0100"

//And play is unable to read the correct date

}

public static void save(Stuff here, Date rtn){

//do validation/saving

viewDay(rtn);

}

}

问题出在您未显示的代码中,我们需要两种方法的完整代码

只需使用render(date)调用您的模板,或调用另一个控制器方法,该方法期望使用date对象作为Date。 不要在Java代码中将Date转换为String,而是在参数绑定期间自动播放该句柄。 如果需要在视图模板中以某种格式呈现Date对象,则可以在application.conf中进行全局设置(扫描" date.format"),也可以使用$ {date在模板中呈现Date。 格式('yyyy-MM-dd')}。

如果这不能回答您的问题,请发布您的控制器代码,以便我们更好地了解您要实现的目标。

您好,感谢您再次与我联系:)我已经在顶部添加了一个非常粗略的控制器轮廓。 基本上,viewDay页面上的表单提交到save(),save会执行save-y的工作,然后使用日期对象调用viewDay()以在页面完成后再次显示该页面。 问题是日期以这种方式过去了,据我所知,Play似乎无法读取它,因此恢复为使用当前日期,而不是过去的日期。 再次感谢

是java util Date还是joda date。

返回的日期为ISO8601格式。 Play使用的joda-time默认为ISO 8601日历系统。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值