我正在接近Gwt + Gae世界.
我的基本需求是通过Gwt-Rpc发送我的实体类,而不是将它们复制到DTO中.
Objectify承诺很好地做到这一点.它声称它将隐藏所有"Jdo复杂性".
我从未使用过Jpa或Jdo技术. 所有的复杂性在哪里?
我的意思是,你能否提供一些关于JDO中复杂任务的简单例子,Objectify琐碎了吗?
也许关系?
我有一个CRUD页面,显示Primefaces数据表中查询(域对象列表)的数据.
<p:dataTable
id="negozi"
var="n"
value="#{nController.theListFromQuery}"
rowKey="#{n.id}"
selection="#{nController.selected}"
selectionMode="single">
<p:column headerText="Field1">
<h:outputText value="#{n.f1}" />
</p:column>
<p:column headerText="Field2">
<h:outputText value="#{n.f2}" />
</p:column>
<p:column style="width:4%">
<p:commandButton
actionListener="#{nController.prepareEdit(n)}"
update=":editDialogId"
oncomplete="editDialog.show()"
value="Edit" />
</p:column>
...
Run Code Online (Sandbox Code Playgroud)
通过单击编辑按钮,将显示一个对话框:
<p:dialog
header="Edit N"
widgetVar="editDialog"
id="editDialogId">
<h:form id="formDialog">
<h:panelGrid id="editDialogTable" columns="2" cellpadding="10" style="margin:0 auto;">
<p:outputLabel for="field1" value="F1:" />
<p:inputText id="field1" value="#{nController.selected.f1}" />
<p:outputLabel for="field2" value="F2:" />
<p:inputText id="field2" value="#{nController.selected.f2}" />
<p:commandButton
value="Confirm"
actionListener="#{nController.doEdit}"
update=":form"
oncomplete="editDialog.hide()"
rendered="#{nController.selected.id!=null}" />
...
Run Code Online (Sandbox Code Playgroud)
有用.现在我想让F1成为必填项目.
我将"required"属性添加到inputText字段,会发生什么?
当我尝试确认没有必填字段的表单时,实体不会被编辑(这是正确的),但对话框已关闭(这不对!)
当我重新打开对话框时,我可以在所需(和无效)字段上看到红色突出显示.
我想要的是在表单无效时阻止对话关闭.
我是否必须编写一些JS或者JSF会帮助我吗?
我有这个网格:
<div class="ui-grid-b">
<div class="ui-block-a">
<div class="ui-bar"> <a href="xxx.htm">
<img alt="alt..." src="image.jpg" />
</a>
</div>
</div>
<div class="ui-block-b">
<div class="ui-bar"> <a href="xxx.htm">
<img alt="alt..." src="image.jpg" />
</a>
</div>
</div>
<div class="ui-block-c">
<div class="ui-bar"> <a href="xxx.htm">
<img alt="alt..." src="image.jpg" />
</a>
</div>
</div>
<div class="ui-block-a">
<div class="ui-bar"> <a href="xxx.htm">
<img alt="alt..." src="image.jpg" />
</a>
</div>
</div>
<div class="ui-block-b">
<div class="ui-bar"> <a href="xxx.htm">
<img alt="alt..." src="image.jpg" />
</a>
</div>
</div>
<div class="ui-block-c">
<div class="ui-bar"> <a href="xxx.htm">
<img alt="alt..." src="image.jpg" />
</a>
</div> …Run Code Online (Sandbox Code Playgroud) 我只想得到专家的确认.我仍然对我认为在这样的环境中存储和处理日期的正确方法感到自信.
我正在为意大利用户开发一个小应用程序.
基本上,他们可以创建一个条目列表,每个条目都有一个creationDate(我只对日期部分感兴趣,时间在我的场景中没用).
因此,用户在"日期"表单字段中输入以下格式的日期:2014年6月22日代表2014年6月的第22天.然后,日期被解析为:
entryData.dateEntry = moment( $(form).find('input[name=dateEntry]').val(), 'DD-MM-YYYY' ).toDate();
Run Code Online (Sandbox Code Playgroud)
最后,我的入门模型被添加到backbone.js集合中,并通过MongoDB中的Node.js + Express存储在服务器端.
查询Mongo的条目,我看到:
2014-06-21 22:00:00 +0000
对应于"dateEntry":日期(1403388000000).
谷歌搜索,我发现MongoDB没有时区的概念.所有日期都以UTC格式存储,我之前创建的日期对象格式为GMT + 2.但我真的很害怕......我怎么能以简单的方式回到当地时区的约会?
接下来,我将在下划线模板中显示条目数据,这样:
<%= moment(dateEntry).format('DD/MM/YYYY') %>
Run Code Online (Sandbox Code Playgroud)
而且......瞧!我得到了当地的'意大利'日期:22/06/2014.
现在,我的问题是:正确的方法是什么?
过程是:在本地时区解析日期=>存储在utc =>以本地时区检索日期.这是一种常见的做法吗?
我还想:我不能简单地避免使用时区和存储我的本地(意大利)时间,因为它是时间(2014-06-22 00:00:00)?这太糟了吗?
我的RPC服务中有这个方法:
@Override
public Entrata[] getEntrate(int from, int to) {
List<Entrata> data = entrateDao.list();
return data.toArray(new Entrata[0]);
}
Run Code Online (Sandbox Code Playgroud)
如您所见,我没有使用这两个参数,在SQL世界中,我将使用LIMIT和OFFSET.
现在还不完全清楚我现在要做什么,我开始阅读这篇文章:http: //code.google.com/p/objectify-appengine/wiki/IntroductionToObjectify#Cursors
我想我必须做一个query.startCursor()
然后迭代"TO"次,页面大小.
行?你可以帮我一些片段吗?:)
可能重复:
在node.js中协调并行执行
首先,动手伪代码:
forEach(arrayelements) {
asyncQueryFunction(function(qres) {
//work with query results.
});
}
// finally, AFTER all callbacks did return:
res.render("myview");
Run Code Online (Sandbox Code Playgroud)
怎么做?
如果不够清楚,我会解释:
我需要执行一系列"更新"查询(在mongodb中,通过mongoose),循环遍历文档ID列表.对于我的数组中的每个id,我将调用一个异步函数,它将返回查询结果(实际上我不需要对它们做任何事情).
我知道我必须使用.forEach()javascript循环,但是只有在我的所有异步查询完成后才能执行我的"最终"回调?
我已经使用优秀的异步库(https://github.com/caolan/async)来实现这种任务,当我执行一系列"有限"任务时.但我不认为我可以传递一系列不同的功能.
我可以吗?
我可以使用Google帐户在AppEngine中验证用户身份的方式非常棒.
但是,我需要使用我的自定义身份验证登录系统.
我将有一个AppUsers表,带有用户名和加密密码.
我读了一些关于gae会话的内容,但我需要帮助才能启动我的应用安全性.
如何跟踪经过身份验证的用户会话?设置cookie?
一个初学者.
我开始使用MongoDb和nodejs(使用mongoose).
我有一个故事集合,每个都可以有一个或多个标签,它是这样的:
{
title: "The red fox",
content: "The red fox jumps away...",
tags: [
{
tagname: "fairytale",
user: "pippo"
},
{
tagname: "funny",
user: "pluto"
},
{
tagname: "fox",
user: "paperino"
}
]
},
... other stories
Run Code Online (Sandbox Code Playgroud)
现在我想做一个标签云.
这意味着查询所有标签的故事.
在关系世界(例如MySQL)中,我会有一个Stories表,一个Tags表和一个Stories_Tags表(多对多).然后我会在标签表或类似的东西上查询.
有办法吗?(我确定是的)
如果是的话,这是一个好习惯吗?还是它打破了nosql范式?
你能想象出我的架构设计有更好的方法吗?
我试图让一个图标"颤抖".
在加载我的控制器时,我创建了一个这样的Timer:
[NSTimer scheduledTimerWithTimeInterval:0.2 target:self selector:@selector(shakeIphonePic) userInfo:nil repeats:YES];
Run Code Online (Sandbox Code Playgroud)
这是我的摇床方法:
- (void)shakeIphonePic
{
[UIView animateWithDuration:0.09
delay:0
options:UIViewAnimationOptionAllowUserInteraction
animations:^{
self.iphonePic.layer.transform = CATransform3DMakeRotation(DegreesToRadians(8.0), 0.0, 0.0, 1.0);
}
completion:^(BOOL finished) {
[UIView animateWithDuration:0.09
animations:^(void) {
self.iphonePic.layer.transform = CATransform3DMakeRotation(DegreesToRadians(-16.0), 0.0, 0.0, 1.0);
}];
}
];
}
Run Code Online (Sandbox Code Playgroud)
它并不像我预期的那么好,但......这不是主要问题.
看起来它显着减慢了我的UI的其余部分,之前很好.
你能否建议我更有效地动摇我的偶像?
我需要检测用户"指压",已经有"点击"事件,但是tap = press + release.
我需要在指纹上完全调用JS函数,就像keypress()标准浏览器一样.
mongodb ×2
node.js ×2
objectify ×2
asynchronous ×1
backbone.js ×1
cursor ×1
date ×1
events ×1
express ×1
grid ×1
image ×1
ios ×1
iphone ×1
java ×1
jdo ×1
jsf ×1
jsf-2 ×1
keypress ×1
many-to-many ×1
momentjs ×1
mongoose ×1
nosql ×1
pagination ×1
primefaces ×1
resize ×1
security ×1
tags ×1
uiview ×1
validation ×1