小编Cyr*_* N.的帖子

如何在静态上下文中使用泛型类与特定对象?

我会尽力解释.

我使用Play Framework 2,我会做很多CRUD操作.他们中有些人会identitcal,所以我想吻和DRY所以起初我在想包含一个抽象类list,details,create,updatedelete方法,与通用对象,并通过指定要使用哪个对象扩展这个类(型号和表格):

public abstract class CrudController extends Controller {
    protected static Model.Finder<Long, Model> finder = null;
    protected static Form<Model> form = null;

    public static Result list() {
        // some code here
    }

    public static Result details(Long id) {
        // some code here
    }

    public static Result create() {
        // some code here
    }

    public static Result update(Long id) {
        // some code here
    }

    public static Result delete(Long …
Run Code Online (Sandbox Code Playgroud)

java inheritance static playframework-2.0

10
推荐指数
1
解决办法
2444
查看次数

如何选择完美的RESTful框架?

我知道这个问题太宽泛了,无法用简单的"使用这个框架"来回答,但我真的很感激你对这个问题的建议.

我希望制作一个(相当复杂的)项目,而不是运行API.我对任何编程语言(主要是PHP,Python,Java)持开放态度,并发现许多框架更倾向于构建RESTful Web服务器.

我唯一的主要限制是,我将拥有一个可重用,简单且无代码意义独立的软件包,以便以后轻松改进我的API,甚至可以毫不费力地切换到其他框架.

对于Python和Java,我考虑过制作一个专用包.每个动作都会调用包中的专用方法,包将返回object/dict,动作会将其转换为正确的格式.

经过多次研究,我对两个可能对我的工作有益的框架犹豫不决,但我需要你的建议,因为我不会在这里犯任何错误.

  1. 玩!框架(Java)
    • 优点:
      • 路由器面向RESTFul(您定义方法(GET,POST等),请求和class.method使用)
      • 您不必为每个操作创建一个类
    • 缺点:
      • 该模型已包含在内.如果我以后更改框架,也许我会坚持使用它(但显然不是因为Play!似乎使用JPA)
      • 也许事实是,如果我想将参数发送到将在方法签名中定义的操作,我必须采用ClassName.properties而不是像{ClassName:{properties:'value'}}这样的json
  2. 龙卷风Web(Python)
    • 优点:
      • 似乎非常强大:FriendFeed使用(至少)!
      • 通过主要的OpenId,OAuth和Facebook验证已经实施
      • 非常轻(可能是个问题)
    • 缺点:
      • 不那么受欢迎:通过进入代码而不是文档,您更了解工作
      • Urls似乎非常基础(就我所见,你必须在一个文件中定义所有url,包含所有类)
      • 每个动作一类(可能很重)
      • 必须制作基本的装饰器(测试用户是否为auth等)

为了在生产中使用它们,使用apache&mod_proxy或nginx很容易实现.

所以,我的问题很简单:你会选择什么(在这两者或其他人之间,我不接受建议)以及为什么?

非常感谢您的建议!

api rest frameworks

9
推荐指数
1
解决办法
4410
查看次数

使用join更新值

使用Hibernate,我想根据条件更新数据库中的数据,但是我收到以下错误:"遍历的节点不能为null"

这是我的数据库描述:

Account: id, email, password
Member : id, account, team
Team: id, current (and a reference to member => members)
Run Code Online (Sandbox Code Playgroud)

这是我的JPA:

UPDATE Team t SET t.current = :current LEFT JOIN t.members m WHERE t.current = :current_true AND m.account = :account
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?如果我将LEFT JOIN移动到SET之前:

UPDATE Team t LEFT JOIN t.members m SET t.current = :current WHERE t.current = :current_true AND m.account = :account
Run Code Online (Sandbox Code Playgroud)

我得到了:"期待SET,发现LEFT"

如果我删除了联接:

UPDATE Team t SET t.current = :current WHERE t.current = :current_true AND t.members.account = :account
Run Code Online (Sandbox Code Playgroud)

我得到了:"非法尝试取消引用收集". …

java hibernate jpa jpql

9
推荐指数
2
解决办法
1万
查看次数

请求如何在Play Framework 2中运行?

我必须说我对如何使用新的Play Framework 2处理请求参数感到有些困惑.数据来自关于请求如何进行的不同来源.到目前为止,这里有可能性:

1 - 如果你做一个简单的GET:

ctx().request().queryString()
Run Code Online (Sandbox Code Playgroud)

2 - 如果使用HTML表单执行POST:

表格 :

<form method="post" action="/">
    <input type="hidden" name="foo" value="bar" />
    <input type="hidden" name="t" value="1" />
    <input type="hidden" name="bool" value="true" />
    <input type="submit" name="submit" value="Submit" />
</form>
Run Code Online (Sandbox Code Playgroud)

方法 :

public static Result test() {
    ctx().request().queryString();             // {} ; As expected
    ctx().request().body();                    // contains data
    ctx().request().body().asFormUrlEncoded(); // contains data
    ctx().request().body().asJson();           // empty
    return ok();
}
Run Code Online (Sandbox Code Playgroud)

这似乎很正常.

现在,如果我添加@BodyParser.Of(BodyParser.Json.class)(假设我在非JS案例中接受Ajax POST和普通POST for fallback):

@BodyParser.Of(BodyParser.Json.class)
public static Result test() {
    ctx().request().queryString();             // {} ; …
Run Code Online (Sandbox Code Playgroud)

json request playframework-2.0

9
推荐指数
1
解决办法
7935
查看次数

在Play!Framework 2中是否有节流模块或方法?

我正在构建一个API,我想限制对它的请求.

我想限制每个用户每个时间(小时,天)的请求数,每个时间(所有用户)的请求总数(小时,天)等.

我四处搜索,发现Play 2.1是否有模块,但没有任何结果.我在这里尝试过,如果有人已经遇到这个问题,我发现它只能用于Play 1.2.

throttling playframework-2.1

9
推荐指数
0
解决办法
302
查看次数

CherryPy:有没有最好的方法将项目拆分为多个文件?

我是来自Django的CherryPy的新手.我喜欢Django将项目的各个部分分成许多文件的方式,我想在CherryPy中做同样的事情,而不是有一个大文件.

我认为如果我能在这些部分拆分项目会很棒:

  • application.py:CherryPy的核心,服务器启动的位置
  • urls.py:包含所有URL,可能使用RoutesDispatcher
  • models.py:通过SQLAlchemy,包含所有模型
  • controllers.py:非常明显;)

我不是要求在这里完整的代码粘贴,一个示例/ pastebin/gist的链接也是完美的:)

谢谢你的帮助.

python code-organization cherrypy project-organization

8
推荐指数
1
解决办法
3124
查看次数

包含PHP代码的GIF/Jpeg文件

测试Web应用程序,我可以上传GIF/Jpeg文件,我知道在GIF/Jpeg中正确包含PHP代码时可能存在威胁(因为它是使用imagecreatetruecolorimagejpeg修改的).

我正在寻找一个包含简单PHP代码(如phpinfo或echo'hello world')的现有GIF文件,只是为了验证威胁是否具体.

什么是完美的是一个专门制作的GIF图像包含中间或调色板颜色的PHP代码,但我没有成功找到一个.

谢谢你的帮助!

php security gif

8
推荐指数
1
解决办法
1万
查看次数

如何构建独立于版本的Play!Framework 2模块?

我使用来自http://www.objectify.be/wordpress/?p=363的解释良好的文章构建了一个Play!Framework 2模块,但是如果我更改PlayFramework版本(例如通过更新),模块将失败.

有没有办法使模块"版本独立"?

module playframework-2.0

8
推荐指数
1
解决办法
78
查看次数

使用CSRF的Playframework:"在会话中找不到CSRF令牌"?

我正在使用Playframework制作一个简单的身份验证系统,内置CSRF过滤器和Security.Authenticator系统,但我遇到了一个问题:

当用户填写他的登录名/密码并提交回车时,我有以下错误:

在会话中找不到CSRF令牌

我检查了我的表单,CSRF令牌确实存在且正确放置(在标签内)

这是我的routes:

GET     /login                      controllers.Authentication.login
POST    /login                      controllers.Authentication.authenticate
Run Code Online (Sandbox Code Playgroud)

而我的Authentication.java班级:

@play.filters.csrf.AddCSRFToken
public static Result login() {
    if (Session.getAccount() != null) {
        return redirect(controllers.routes.Instances.list());
    }

    LoginForm loginForm = new LoginForm();
    if (ctx().session().containsKey("email")) {
        loginForm.setEmail(ctx().session().get("email"));
    }

    if (request().queryString().containsKey("disconnected")) {
        flash("warning", Messages.get("secure.logout")); // TODO : Warning flash message
    }

    Form<LoginForm> form = Form.form(LoginForm.class).fill(loginForm);
    return ok(views.html.login.render(form));
}

@play.filters.csrf.AddCSRFToken
@play.filters.csrf.RequireCSRFCheck
public static Result authenticate() {
    Form<LoginForm> form = Form.form(LoginForm.class).bindFromRequest();
    if (form.hasErrors()) {
        return badRequest(views.html.login.render(form));
    }

    LoginForm login = form.get(); …
Run Code Online (Sandbox Code Playgroud)

csrf playframework playframework-2.3

8
推荐指数
1
解决办法
8615
查看次数

是否有可能强制Play Framework只通过RequireJS编译所有js文件?

使用Play-Framework 2.1(rc4)和"内置"RequireJS,一切运行良好,Play成功压缩(uglify)我在PROD中的所有JS文件,但我希望它在一个JS文件中加入所有这些文件.

这可能吗?如果是,怎么办?是否有使用这些指令生成的build.js?

谢谢你的帮助 :)

playframework requirejs playframework-2.1

7
推荐指数
1
解决办法
2419
查看次数