ここで 2 つの問題が発生しています。これは 2 つの問題であるか、同じ根源を持っている可能性があります。どちらもどこかで構成エラーのように感じられるため、それらをまとめています。これが問題を混乱させている場合は、お詫び申し上げます...
私は Ninja Framework を使用していますが、Hello World の例から始める方法をまだ学んでいます。Routes、Controller、および html OK を使用して、GET および POST でページを提供できます。
関連する場合に備えて、NetBeans を使用して書き込み、Firefox をテストして、新しい CentOS VM で実行しています。Ninjaを再起動しました(何度も)。
問題 1: コードで NinjaProperties が表示されない。たとえば、私は置くことができることを理解していました
import com.google.inject.Inject;
public abstract class PersistDB {
@Inject
NinjaProperties ninjaProperties;
...
protected void loadProps() {
dbReadServer = ninjaProperties.getWithDefault(DB_READ_SERVER_PROP, DBSERVER_DEFAULT);
...
}
}
public class UsersDB {
public UsersDB() {
loadProps();
}
}
モデルコードに application.conf ファイルにアクセスさせて、プロパティを抽出します。ただし、ninjaProperties は null に戻ります。
問題 2: Ninja docsで説明されている JSON 解析では、適切なフィールド名を持つ単純なクラスをコントローラーの署名に追加すると、JSON がバックグラウンドで変換されてしまい、動作しません。適切なフィールドを持つクラスを Controller メソッド シグネチャに追加できますが、常に null です。GSON を使用すると、自分でオブジェクトを抽出できるので、回避策がありますが、Ninja で動作していないことも確認できます。
コードは例に非常によく従っています。
package controllers;
public class UserRegisterReq {
String email;
String identName;
String password;
}
と
package controllers;
import com.google.inject.Singleton;
import models.user.User;
import models.user.UserResult;
import ninja.Context;
import ninja.Result;
import ninja.Results;
import ninja.session.Session;
@Singleton
public class UserController {
...
public Result doRegisterPost(UserRegisterReq req, Context context) {
Session session = context.getSession();
UserResult ur;
ur = User.registerUser(req.email, req.password, req.identName);
...
}
何か案は?前もって感謝します...