0

金細工師としての仕事用のサイトが必要です。プログラミングの経験が「ある程度」あるので、自分でやろうと思っていましたが、仕事の画像と基本的な連絡先情報を表示するためのサイトにすぎません。

私がやろうとしていることは、基本的にこれです:

宝石の画像/レンダリングをこのようなフォルダー構造に入れます

- public
- - images
- - - creations
- - - - JewelSet1
- - - - - Jewel1
- - - - - - img1
- - - - - - img2
- - - - - - img3
- - - - - Jewel2
- - - - JewelSet2
- - - - - Jewel3
- - javascripts
- - stylesheets

メソッドが初めて呼び出されると、public static Result index()public/images/creations を検索し、作成した 3 つのオブジェクト (CreationSet、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;
}

@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-templates で適切な HTML を生成します。

これは正しい方法ですか?または、どのようにすればよいですか?

4

1 に答える 1

1

ところで、それはGlobalオブジェクトにあるはずです。一部のインデックス ページではありません。

アプリケーションの起動時に呼び出される start メソッドをオーバーライドできます。Play フォルダーの例にあるすべてのフィクスチャ データは、グローバル オブジェクトで行われます。

そうでなければそうしていただろう。ローカル アセットの大きな問題は、既存のファイル システム、相対/絶対パスに依存しているため、おそらくローカル/プロダクションなどの間で混乱してしまうことです。

真にステートレスなシステムは、資産を管理するために外部ファイルシステムをセットアップすることです。たとえば、Amazon S3。そうすれば、Play アプリケーションの新しいインスタンスをデプロイしても、静的アセットは一貫したままになります。

編集 1:最後のポイント、適切な htmlを生成することによって、コンパイルされる Java/Scala コードを生成することを意味する場合は、そうしないでください。コンパイル時間はかなり長く、さらに混乱することになります。あなた以外の誰もあなたのコードを理解することはできません。

編集 2:そして最後のポイント (約束) : 金細工師として、ツールにはさまざまな目的があり、ハンマーを持っていても、すべての問題を解決できるわけではないことを認識しておく必要があります。プログラマーとして、Play は本当に多くの利点を備えた非常に美しいツールですが、あなたの場合には最適なツールではないかもしれません。

于 2012-11-12T22:14:16.930 に答える