我需要一个网站来展示我作为金匠的工作,因为我有“一些”编程经验,所以我想我应该自己做,它只是一个显示我工作的一些图像和基本联系信息的网站。
我想做的基本上是这样的:
我将珠宝的图像/渲染放在这样的文件夹结构中
- public
- - images
- - - creations
- - - - JewelSet1
- - - - - Jewel1
- - - - - - img1
- - - - - - img2
- - - - - - img3
- - - - - Jewel2
- - - - JewelSet2
- - - - - Jewel3
- - javascripts
- - stylesheets
当第一次调用 public static Result index()
方法时,它应该搜索 public/images/creations 并将文件夹分类为我创建的三个对象,即:CreationSet、图像和创作,基本上是:
package models;
import java.awt.image.BufferedImage;
import play.db.ebean.Model;
import play.data.validation.Constraints;
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
public class Image extends Model{
@Id
public String id;
@Constraints.Required
public BufferedImage img = null;
@Constraints.Required
public String desc;
}
<小时/>
@Entity
public class Creation extends Model {
@Id
public String id;
@Constraints.Required
public String name;
@Constraints.Required
public String desc;
public List<Image> images = new ArrayList<Image>();
public void addImage(int priority, Image img){
images.add(priority, img);
}
}
<小时/>
@Entity
public class CreationSet extends Model {
@Id
public String id;
@Constraints.Required
public String name;
@Constraints.Required
public String desc;
public List<Creation> creations = new ArrayList<Creation>();
public void addCreations(int priority, Creation creation){
creations.add(priority, creation);
}
}
然后遍历 CreationSet
列表并在 html 模板中生成正确的 HTML
这是正确的方法吗?或者说我应该怎么做?
最佳答案
顺便说一句,这可能应该在 Global 中目的。不在某些索引页上。
您可以覆盖启动应用程序时将调用的启动方法。 Play 文件夹示例中的所有灯具数据均在 Global 对象中完成。
否则我就会这样做。本地 Assets 的一个大问题是你依赖于现有的文件系统、相对/绝对路径,并且你可能最终会在本地/生产等之间搞乱。
真正的无状态系统是设置一个外部文件系统来管理 Assets 。以亚马逊 S3 为例。这样,如果您部署 Play 应用程序的新实例,您的静态资源仍然是连贯的。
编辑 1: 最后一点,如果生成正确的 html 意味着生成将被编译的 Java/Scala 代码,则不要这样做。编译时间相当长,而且你还要制作一个 一团糟。除了您之外,没有人能够理解您的代码。
编辑2:最后一点( promise ):作为金匠,你必须意识到工具有不同的目的,即使你有一把锤子,你也不能用它解决所有问题。让我说,作为一名程序员,Play 确实是一个非常漂亮的工具,具有许多优点,但对于您的情况来说,它可能不是最合适的锤子。
关于java - 在 play 2.0.3 中,我有 'sets' 个图像,我想在启动服务器时对其进行分类并放入数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13331717/