把gae java的教程例子改了一下,用springMVC写的,目前只是个半成品,现在bug是点击submit才能看到所有留言,点击两次submit才能看到自己发的留言。
因为是springMVC是第一次接触,写的不好,东西是今天上悄悄改的,页面也没仔细弄,下午还得去忙工作。有时间再改吧。
怎么配置gae spring 参考的是这篇帖子http://sikeh.iteye.com/blog/364043
由于东西bug比较多,就贴几个主要代码。具体配置参考上面给的链接,写的很详细了 呵呵、
bean
package com.fish.gae.entity;
import java.util.Date;
import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.IdentityType;
import javax.jdo.annotations.PersistenceCapable;
import javax.jdo.annotations.Persistent;
import javax.jdo.annotations.PrimaryKey;
import com.google.appengine.api.users.User;
@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class Comment {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Long id;
@Persistent
private User author;
@Persistent
private String content;
@Persistent
private Date date;
@Persistent
private String commentDate;
public Comment(User author, Date date, String content,String commentDate) {
this.author = author;
this.content = content;
this.date = date;
this.commentDate =commentDate;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public User getAuthor() {
return author;
}
public void setAuthor(User author) {
this.author = author;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
public String getCommentDate(){
return commentDate;
}
public void setCommentdate(String commentDate){
this.commentDate = commentDate;
}
}
controller
package com.fish.gae.controller;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.logging.Logger;
import javax.jdo.PersistenceManager;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import com.fish.gae.entity.Comment;
import com.fish.gae.entity.PMF;
import com.google.appengine.api.users.User;
import com.google.appengine.api.users.UserService;
import com.google.appengine.api.users.UserServiceFactory;
@Controller
@RequestMapping(value = "/commentAdd.htm")
public class CommentController {
private static final Logger log = Logger.getLogger(CommentController.class
.getName());
@RequestMapping(method = RequestMethod.POST)
public String doPost(String content, Model model) {
UserService userService = UserServiceFactory.getUserService();
User user = userService.getCurrentUser();
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm");
String commentDate = sdf.format(new Date());
model.addAttribute("content", content);
Comment comment = new Comment(user, date, content,commentDate);
PersistenceManager pm = PMF.get().getPersistenceManager();
try {
pm.makePersistent(comment);
} finally {
pm.close();
}
return "comment";
}
@ModelAttribute("comments")
public List<Comment> doGet(Model model) {
UserService userService = UserServiceFactory.getUserService();
User user = userService.getCurrentUser();
PersistenceManager pm = PMF.get().getPersistenceManager();
String query = "select from " + Comment.class.getName();
List<Comment> comments = (List<Comment>)pm.newQuery(query).execute();
if(comments.isEmpty()){
String message= "没有留言";
System.out.print(message);
}else{
for(Comment co : comments){
if(co.getAuthor()==null){
String author = "火星人";
}else{
co.getAuthor().getNickname();
}
co.getContent();
}
}
return comments;
}
}
页面 comment.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ page isELIgnored="false"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>
<c:forEach items="${comments}" var="comments" varStatus="status">
<c:out value="${comments.content}"></c:out>
<c:out value="${comments.commentDate}"></c:out>
</c:forEach>
<form action="commentAdd.htm" method="post">
<table>
<tr>
<td>comment</td>
<td><textarea rows="3" cols="10" name="content"></textarea></td>
</tr>
<tr>
<td><input type="submit" value="Submit" /></td>
</tr>
</table>
</form>
</body>
</html>
分享到:
相关推荐
GAE-SpringMVC_Example SpringMVC 应用示例,支持:Google AppEngine v1.9.15 和 SpringMVC v3.1.1 是一个建立在[集成开发环境] Moon Eclipse Service Release 1 (4.4.1) 上的项目,因此您可以将其导入Eclipse 并...
实现了spring3+springmvc+jpa2.0+gae之间的集成,项目可直接运行
GAE使用规则GAE使用规则GAE使用规则GAE使用规则GAE使用规则GAE使用规则GAE使用规则GAE使用规则GAE使用规则
Eclipse开发 Gae,Struts2,Spring,云计算,学习gae云计算的好例子
图自编码器GAE的pytorch实现,参考论文vgae
pass之GAE入门教程, 学习GAE
图形自动编码器GAE的pytorch实现,可参考论文VGAE
GAE平台开发应用时,简单的webapp框架的使用
《GAE编程指南》是一种云计算服务,跟其他的同类产品不同,它提供了一种简单的应用程序构建模型,通过这种模型,你可以轻松地构建出能够容纳数百万用户的应用程序。《GAE编程指南》是介绍使用这个强大平台的专家级...
云计算下的PaaS中的GAE和SAE平台
实现了gae与spring3之间的集成
GAE上可以用的JAVA Blog源代码 可以在GAE上直接使用,支持图片上传等。 源代码是修改其他网友的普通blog程序而来,只做了必要的修改,原结构保留 最新版本请去主页下载 http://redpower1998.appspot.com 主页包括...
《GAE编程指南》是一种云计算服务,跟其他的同类产品不同,它提供了一种简单的应用程序构建模型,通过这种模型,你可以轻松地构建出能够容纳数百万用户的应用程序。《GAE编程指南》是介绍使用这个强大平台的专家级...
百度的bae跟谷歌的gae对比,百度的资源限制很少,但是资源很少,教程很少。。
GAE 集成程序,共有三个软件包,解压后安装包里的python然后运行SDU里的exe文件,最后运行客户端加服务端中localproxy中的proxy.py就可以了
关于GAE的教程、工具与文档(建站) 全
GAE(Google App Engine)空间 GAE(Google App Engine)空间申请使用教程及 GAE域名捆绑方法使用教程及 GAE域 GAE(Google App Engine)空间申请使用教程及 GAE域名捆绑方法捆绑方法
gae-java-mini-profiler.zip,google a p p engine java runtime的mini profiler(灵感来自于https://github.com/kamens/gae_mini_profiler上的python gae_mini_profiler和...
GAE虽然支持java了,但不幸的是依然不支持php 但是我们可以使用基于java的Quercus基本上可以100%的支持PHP语言
基于Google App Engine(GAE)的Java和GWT应用开发_Google App Engine Java and GWT Application Development Nov.2010