Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在游戏2.0.3中,我有';设置';启动服务器时要分类并放入数据库的图像的_Java_Database_Webserver_Playframework 2.0 - Fatal编程技术网

Java 在游戏2.0.3中,我有';设置';启动服务器时要分类并放入数据库的图像的

Java 在游戏2.0.3中,我有';设置';启动服务器时要分类并放入数据库的图像的,java,database,webserver,playframework-2.0,Java,Database,Webserver,Playframework 2.0,我需要一个网站为我的工作作为金匠,因为我有'一些'编程经验,我认为我会自己做,它将只是一个网站,显示我的工作和基本联系信息的一些图像 我想做的基本上是: 我把我的珠宝图像/渲染放在这样的文件夹结构中 - public - - images - - - creations - - - - JewelSet1 - - - - - Jewel1 - - - - - - img1 - - - - - - img2 - - - - - - img3 - - - - - Jewel2 - - - - Jew

我需要一个网站为我的工作作为金匠,因为我有'一些'编程经验,我认为我会自己做,它将只是一个网站,显示我的工作和基本联系信息的一些图像

我想做的基本上是:

我把我的珠宝图像/渲染放在这样的文件夹结构中

- public
- - images
- - - creations
- - - - JewelSet1
- - - - - Jewel1
- - - - - - img1
- - - - - - img2
- - - - - - img3
- - - - - Jewel2
- - - - JewelSet2
- - - - - Jewel3
- - javascripts
- - stylesheets
当第一次调用
public static Result index()
方法时,它应该通过public/images/creates进行搜索,并将文件夹分类为我创建的三个对象,即creatiosit、Image和Creation,它们基本上是:

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;
}

@实体
公共类创建扩展模型{
@身份证
公共字符串id;
@约束条件。必需
公共字符串名称;
@约束条件。必需
公共字符串描述;
public List image=new ArrayList();
公共无效添加图像(整数优先级,图像img){
图像。添加(优先级,img);
}
}

@实体
公共类扩展模型{
@身份证
公共字符串id;
@约束条件。必需
公共字符串名称;
@约束条件。必需
公共字符串描述;
public List creates=new ArrayList();
公共void addCreations(int优先级,创建){
创建。添加(优先级,创建);
}
}
然后遍历
creatiosit
s列表,在HTML模板中生成正确的HTML


走这条路对吗?或者我应该怎么做呢?

顺便说一句,应该在对象中。不在某个索引页上

您可以重写启动应用程序时将调用的start方法。“播放”文件夹示例中的所有装置数据都在全局对象中完成

否则我会做的。本地资产的一个大问题是,您依赖于现有的文件系统、相对/绝对路径,最终可能会在本地/生产等之间出现混乱

真正的无状态系统是设置一个外部文件系统来管理资产。例如AmazonS3。这样,如果您部署了一个新的Play应用程序实例,那么您的静态资产仍然是一致的

编辑1:最后一点,如果生成正确的html意味着生成将被编译的Java/Scala代码,那么不要这样做。编译时间相当长,而且您将要 一团糟。除了你,没有人能理解你的代码


编辑2:最后一点(承诺):作为一名金匠,你必须意识到工具有不同的目标,即使你有一把锤子,也无法解决所有问题。让我说,作为一个程序员,Play确实是一个非常漂亮的工具,有很多优点,但它可能不是您的情况下最合适的锤子

“我认为在我开始编写代码之前,我应该问一下我所想的方法是否有效”——不,通常你应该先点击教程,然后再编写代码,遇到问题时再问。这个网站是一个很好的问题解决引擎;更不用说安全毯了。嗯,是的,我已经学习了很多教程,并在play wiki上阅读了。但是在这个主题上找不到太多好的,不,你不会找到一个关于你需要做的每一件事的一步一步的指南。搞清楚这一点是程序员们的目的。值得一提的是,我对此的第一反应是使用某种后端管理界面上传图像!希望能自动生成。也就是说,它不一定是“正确”的选项,您可能已经有了生成此目录结构的其他工作流。或者你可能不会。等等(正如你所看到的,含糊不清地讨论设计思想可能会花费很长时间,这就是为什么这是一个糟糕的问题形式。)当然不是,而且一个循序渐进的指南不是我想要的,我想要的只是一些确认,我要走的方向是可能的。我更愿意自己解决剩下的问题,如果你足够努力,一切都是可能的。无论这是一个好主意,对于不熟悉项目背景的人来说,或多或少是不可能的;这只是一个不够具体的问题。现在,可以说这是一个糟糕的想法,但“将文件层次结构扫描到显式数据结构”是一种相当普通的技术,因此是一种有效的方法。所以我能想象你得到的唯一答案是“不,你想做的不是完全荒谬的”;这并没有为SO添加有用的内容,这就是为什么安全性一揽子问题不好的原因。
@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);
    }
}