一位同事和我已经开始技术规划一个webapp项目,我们将在业余时间一起工作。我们(大部分)决心使用:Eclipse用于Java EE,ICEfaces(这意味着JSF),Tomcat,Hibernate, MySQL。在工作中,我们使用:IntelliJ IDEA,Struts,JSP,WebLogic,JDO和Oracle。我们将使用的唯一常见解决方案是Spring Framework。
我们使用我们的原因是因为:(1)我们的应用程序将严重依赖于Ajax(2)我们想要尝试仅使用允许商业用途的开源软件(3)我们想要学习经验/简历建设者。
所以我的问题是这样的:基于我们在工作中使用和了解的内容以及我们将在这个项目中使用的内容,是否有任何明显的陷阱,提示,技巧或建议之前有助于考虑我们开始?同样值得赞赏的是关于良好Eclipse插件的建议(到目前为止我已经获得了ICEfaces集成)。
希望这不是一个普遍的讨论问题,但我已经开始尊重这个网站的知识水平,并会感谢人们愿意给予的任何建议。
答案 0 :(得分:1)
你说你的应用程序将严重依赖AJAX。请注意,每次AJAX交互都会生成浏览器/服务器消息,而可能会生成更多浏览器/服务器流量。这将影响您的服务器和网络负载。
AJAX可以诱人 - 例如动态填充下拉列表 a la Google Suggest,更新页面碎片等。但请注意对您的网络和服务器的影响。
答案 1 :(得分:0)
我的建议是创造一些简单的东西然后用它来表达。当你试图在指定一个项目时过于乐观[没有优先考虑]时,你几乎都在写它的失败。从简单开始,设计可以扩展,并扩展到您想要的结果。
另外,在需要时使用正确的工具。如果您没有尝试执行完整规模的企业应用程序,请不要使用EJB。
我不知道这个“ajax魔法”来自哪里,但它需要停止。 AJAX是一种在客户端和服务器之间传递小信息的方式,以便以异步方式请求和发送信息。 [即不需要页面重新加载来获取频繁更新的数据]
我的建议:稍后加入AJAX。
答案 2 :(得分:0)
我使用Struts2,对于AJAX,我只需创建另一个动作/相应的JSP。通常情况下,我将使用jQuery并使用任何其他查询字符串参数执行URL上的get,最终结果如下:
JSP中需要AJAX的JavaScript代码段
function getNextPage(currentPage) {
var nextPage = currentPage + 1;
var url = "ajaxGetNextPage.action?page=" + nextPage;
$.ajax({
type: 'POST',
url: url,
success: function(text){
$('#searchResults').html(text);
}
});
}
<input type="button" value="NextPage" onclick="getNextPage($('#currentPage').attr('value'))"/>
动作
public class NextPageAction extends ActionSupport {
private int page -1; // with getter/setter
private EntityDao dao; // whatever your Hibernate DAO impl is...getters/setters
private List<Entity> entities; // whatever the entity POJO is
@Override
public String execute() throws Exception {
if(page > 0)
entities = dao.findPagedEntities(page);
return SUCCESS;
}
}
JSP页面(导入struts标签)
<input type="hidden" id="currentPage" value="<s:property value="page"/>"/>
<s:iterator value="entities">
<div><s:property/></div>
</s:iterator>
这只是一个不完整的片段的例子,但你应该从中获得要点。如果您使用装饰器/网站网格,请确保排除所有 ajax 路径。
答案 3 :(得分:0)
Ajax4JSF(a4j)可能存在一些缺陷,但我发现它是最容易实现的,也是最快的。
不确定与Icefaces的兼容性如何。
答案 4 :(得分:0)
我建议您使用Google Web Toolkit。我已经使用了一段时间,并认为这是一个有趣的方法。您可以编写java,然后交叉编译+优化以运行为javascript和html。
看一看。