有时有必要扩展一个框架。有时有必要连接到请求/响应生命周期中,例如参数绑定或编写安全模块。
如何在playframework 1.x中实现这一点?有两种方法可以扩展Play1.x。首先,您可以编写自己的模块。详细描述了这一点。如果您希望提供诸如iText之类的库或提供特殊的身份验证机制,这将非常有用
第二种方法是编写PlayPlugin。这通常是在模块中完成的,但这不是一个必要条件。编写PlayPlugin需要两个步骤:
编写一个类来扩展类PlayPlugin,并覆盖它的一些属性,例如名为myP
我已经下载了play-1.2.3.zip文件,但找不到可执行文件来运行它,我是第一次使用这个框架,如何运行它
我想建立一个简单的公共网站使用这种技术进行评估
谢谢,根据您所在的平台,有两个程序运行play
play.bat - for windows
play.sh - for linux
如果转到安装Play的目录,可以通过运行
play new helloworld
然后
play run helloworld
听起来不太刺耳,但Play站点中有一个文档部分解释了如何将其与真正优秀的
我有一个Play(1.2.4)应用程序,在我的Windows7 64位开发机器上运行良好
我在运行Java7.0Beta时发生了一些崩溃;这种JavaVM崩溃会出现在特定的代码修改上,但没有任何“逻辑”原因(例如添加crud admin类),但我切换到了最新的7.0_2,现在在windows上一切正常
但是我的部署机器是Linux
同样,一切正常,但在我最近的代码更新之后,它一直崩溃
~ play! 1.2.4, http://www.playframework.org
~
~ Ctrl+C t
我在prod模式下运行Play,启动时它会预编译所有代码,这大约需要一分钟。我不明白的是,为什么每次播放开始时都会发生这种情况,即使代码没有更改
它不是为编译的源使用缓存文件夹吗?有一个选项可以从预编译的源开始。我的意思是它是play start--procompiled首先用play precompile预编译应用程序,然后用play start-Dprecompiled=true启动应用程序
请注意,在Play 1.x中,您仍然需要/app中的模板代码,请参阅
正如我读到的,这个问题经常出现,但我不明白。很抱歉我的无礼
获得了一个名为“subproject1”的子项目
在conf/routes中,我用->/subproject1/subproject1.routes
在子项目1.Routes中,有如下操作:
GET /admin/rater subproject1.controllers.Application.rater(id: Int ?= 0)
有一个类似stuff.scala.html的视图和一个类似以下内容的链接:
<a hr
我刚刚开始学习PlayFramework2.3.0,正在努力学习
.activator
.sbt
.ivy
从%USERPROFILE%文件夹到Windows 7计算机上的自定义文件夹,如C:/learning/playframework/。我希望它们在重新安装操作系统时可以移植/不会丢失
我修改了sbt.boot.properties并将user.home更改为自定义位置,并将play.home作为参数传递给activator.bat
虽然.sbt和.ivy文件夹最初是在自定义文件夹中创建
我在play framework的public/javascripts/test.js中有一个javascript文件。我想用类似于启动play framework时的内容替换@serverURL。我有办法做到这一点吗
var serverURL = @serverURL;
我不认为你可以在公共资产中使用这种替代品
相反,我会在视图中使用如下内容(例如file.html.scala):
var serverURL=“@serverURL”
<script type="text/
我在play framework google group上发布了这篇文章,但他们出于某种原因删除了它。也许有很好的理由,但我发现很难从一个动态的web框架变成像Play这样的静态框架
问题是我习惯于在控制器中设置随机变量,并在视图的某个显示元素中检测到这些变量,然后进行处理。在游戏中,您必须预先定义将传递到视图元素的所有内容,然后从该视图继续将元素传递到下一个视图元素,直到它最终到达需要的位置
我意识到你可以制作包裹包裹包裹的复合对象
case class UserDataRequest[A]
我试图使用sbt concat插件。但是,我无法使用通配符。这是我的build.sbt
name := "webapp"
version := "1.0-SNAPSHOT"
scalaVersion := "2.10.4"
lazy val root = (project in file(".")).enablePlugins(PlayScala).enablePlugins(SbtTwirl).enablePlugins(SbtWeb)
resolvers += Resolver.sonat
在一个使用sbt native packager(0.7.x)的Play framework(2.3.x)Java项目中,如何创建特定于客户的.deb和.rpm包的变体
二进制软件包(.deb、.zip)是使用通用设置创建的。一些客户需要根据其规范提供守护程序用户名或日志位置等特殊功能。我希望保持通用软件包及其设置不变,并添加一个新配置(例如,带有一些覆盖),以便使用activator customer:packageBin获得变体
到目前为止,我所尝试的是创建一个新的SBT配置,它扩展了SBT
我最近将我的项目从版本2.2.1更新到版本2.3.5——经过大量的努力,我陷入了困境:(
我有一个buncha Junit测试,过去在eclipse 2.2.1中运行得很好,但现在当我在2.3.5中运行这些测试时,我得到了以下错误:
java.lang.NoSuchMethodError:models.Activity.getByUser()Lmodels/embedded/reference/UserReference;
在views.html.mails.activityCommittee$
有人知道我如何配置除默认类之外的测试运行程序类,并获取测试摘要结果以正确计算运行/失败的测试吗
具体来说,我想和几个专业跑步者一起跑步。例如,spring junit runner:
@RunWith(SpringJUnit4ClassRunner.class)
或者junit类别运行程序:
@RunWith(Categories.class)
使用上述注释的测试将运行,但不会在activator控制台中打印结果。例如,下面的测试实际上在我的包中运行了6个测试,但结果显示为0:
[finbo
首先,我是游戏框架的新手,所以这可能是非常基本的,但我找不到足够的文档来说明
目前,我有一个使用Oauth2来识别和授权用户的项目。这是由ActionBuilder完成的,并且运行良好
我现在想要的是一个传统的“层”,这意味着授权后,检查用户是否有足够的权限(权限表存储在DB中)
我读过关于动作合成的书,但由于我使用的是ActionBuilder,我想我应该可以用它们来完成。我有composeAction函数,但我不太确定如何实现它
我的代码,当前看起来像:
case class Authent
我正在尝试为我的playframework2项目配置slick3.0.3。
这是我的配置application.conf
db.default.url="jdbc:mysql://localhost/entquiz?characterEncoding=UTF-8"
db.default.driver="com.mysql.jdbc.Driver"
db.default.user=entquiz
db.default.pass="qFbR3CW6"
db.default.host="localho
我正在使用PlayFramework2.3.x开发应用程序,并将其转换为2.4.x。作为迁移的一部分,我正在转换服务,并遇到了i18n的挑战。
如何注入Lang或获取其值
class MyServiceUsedByController {
@Inject
private MessagesApi messagesApi;
void someFoo() {
Lang lang = ///How to get it?
commentToSaveT
我有一个Play 2.3应用程序,我正在迁移到Play 2.4,我正在处理其中一个关于将插件迁移到模块的警告。我在这里遵循以下文档:
我现在有几个问题在我的应用程序,有一些阿克卡演员。到目前为止,以下是我对插件所做的:
class MyPlugin extends Plugin {
// I get the current Application
val app = play.api.Play.current
// On start of the plugin,
我在我的play framework应用程序中添加了过滤器的依赖项,如第页所述,但是在clean-rebuild上,我的项目仍然无法检测到播放。过滤器。。。它会导致编译错误
我是否缺少一些非常基本的东西?“清理-重建”-您使用的是Eclipse吗
如果是这样,那么将eclipse插件添加到播放中(在plugins.sbt文件中):
然后添加到build.sbt下一设置:
// Eclipse settings
// Compile the project before generating E
我有一个设备类和一个事件类,如下所示:
@Entity
public class Device extends Model {
@Id
public Long id;
@OneToMany(mappedBy = "device")
public List<Event> events = new ArrayList<Event>();
...
}
@Ent
如何在不关闭服务器的情况下为Play framework web应用程序提供更新。。
例如,我做了一些错误修复,希望在不停止服务器的情况下向用户提供更新
版本2.3.x您需要使用一些作为负载平衡器。当更改首先到达时,您需要在其他端口/IP/机器上运行应用程序的第二个实例,如果它成功运行,请停止第一个实例。负载平衡器的工作之一是根据其可用性在实例之间切换
另外还有一个很好的指南,即您需要使用一些作为负载平衡器。当更改首先到达时,您需要在其他端口/IP/机器上运行应用程序的第二个实例,如果它成功运行
我已经看到了关于如何从build.sbt读取一个版本的一系列问题,并且已经提供了很多解决方法,用于如何将build.sbt指向conf/application.conf,并在conf/application.conf中指定版本
我有一个配置对象,需要进入版本。我目前将其设置为如下(),其中配置对象来自application.conf。但是,我仍然希望直接从build.sbt获取它。我该怎么做?我是否应该在build.sbt文件上运行bash命令以从中获取版本?有什么建议吗
谢谢 可能不是您想要的
我正在尝试构建一个play 2.3.10应用程序。有329个源文件,我很难让它完成构建。在“编译329个Scala源代码…”的过程异常(太)长的时间没有进展之后,任务管理器开始显示高CPU使用率和过于规则的模式,这使它看起来好像sbt(或进程)处于某种循环中
我最近没有添加任何新的库,所以没有立即看到依赖关系会发生什么变化。我已经尝试过activator clean(和update clean)。我在JAVA_选项和SBT_选项中增加了内存大小。我已将sbt从13.7升级到13.8,然后是13.
我正在使用FullCalendar v2.8.0和play框架。事件数据映射到日历控制器中的json对象,然后从javascript日历构造函数调用。当事件对象的开始日期和结束日期不相同时,它们会正确显示,但如果它们相同,则结束日期显示为null。这是默认行为吗?即使结束时间等于开始时间,我怎么能通过呢
提前谢谢 如果其他人在这个问题上陷入困境,我通过在事件映射到json对象时添加一个字符串字段来解决这个问题。如果开始和结束相同,我将设置要显示的字符串的值。否则,该字段为空。然后我将此条件放入日
我想在web项目的每个页面上显示当前经过身份验证的用户。
我使用@Security.Authenticated注释来限制用户访问。
我有一个授权逻辑(方法),它使用user\u idsession值从数据库检索当前用户数据
因此,有几个问题需要解决:
我应该把getCurrentUser()方法放在哪里,以便在所有控制器的所有操作之前执行它
如何使currentUser值在所有视图中都可用
如何跳过某些操作的身份验证
我现在只为一个动作而工作。我不想在其他操作中重复此代码?我需要它为整个项目工作
我正在为我构建的web应用程序使用Play框架。Play 2.5使用Akka Stream API来允许请求/响应流
我有一个端点,传入的文件直接流式传输到Google Drive
我定义了一个如下所示的BodyParser:
BodyParser("toDrive") { request =>
Accumulator.source[ByteString].mapFuture { source =>
Future.successful(Right("Done"))
}
我已经编写了一个程序调用POST服务
package itss;
import java.util.concurrent.CompletionStage;
import javax.inject.Inject;
import org.junit.Test;
import play.libs.Json;
import play.libs.ws.WSBodyReadables;
import play.libs.ws.WSBodyWritables;
import play.libs.ws.WSCl
在从play framework Scala/Twirl template view/notify.Scala.html移交的scalajs方法中使用case class类型的参数时,获取未定义的行为错误:
@(note: Notification, ...)(implicit ...)
<!DOCTYPE html>
<html>
<body>
...
<script type="text/javascript" charset="
我是play框架的新手,最初创建了一个项目,通过orm管理表的创建。现在对数据库进行了更改,更改影响了模式,然后引入了外键和属性。我需要导入数据库及其所有结构,我想知道是否有办法根据数据库调整模型的代码。我不能清楚地理解这个问题,但您可能需要研究如何跟踪和组织数据库模式的演变。
请看这里:
我是新手!这真是个新手问题,但我就是绕不开它
我浏览了play scala的教程(yabe),并在第二轮被阻止
it should "retrieve Posts with author" in {
User.create(User(NotAssigned, "bob@gmail.com", "secret", "Bob", false))
Post.create(Post(NotAssigned, "My first post", "Hello world", new Date,
是否有人必须使用Play Framework确保给定用户名/密码只存在一个登录会话?(因此不同计算机上的10个用户不能同时使用相同的用户名/密码登录)。我能想到的两种可能性是:
1) 向数据库中的用户类添加时间戳变量,该变量在每次控制器访问时更新为当前时间。注销时为空时间戳,如果时间戳没有超时时间(可能是30分钟),则不允许该用户登录。如果用户的浏览器或计算机崩溃,30分钟内无法登录,这将是一件痛苦的事情
2) 与Java EE Servlets一样,创建sessionId cookie,在登录
我们有一些大数字,必须使用格式化。由于我们是一家法国公司,我们希望它成为一个空间。在我们有法语语言环境的开发机器上,一切正常。当我们部署在一台语言环境为英语的服务器上时,我们最终会得到逗号分隔的数字(1250345而不是1250345)
有没有办法强制使用JVM使用的区域设置?我尝试了application.langs=fr,但这不起作用
Thx使用JavaExtensions.format(数字、字符串)方法时,可以在application.conf中设置默认语言
# i18n
# ~~~~~
当我运行“play precompile”时,它工作但不返回:
(...)
14:45:45,026 INFO ~ Precompiling ...
14:45:58,400 INFO ~ Done.
(doesn't return)
我必须按CTRL-C结束该过程
这是正常的行为吗?若然,原因为何
更新(平台):
在Windows 7(本地)和Linux CentOS 5(prod)上播放1.2.3。“问题”出现在两个位置。否,这不是正常行为。当我这样做时,它会恢复正常。您使用的是什么版
我可以在本地构建一个Play framework模块并在本地使用它,但如何将其发布到内部(Nexus)Maven存储库(而不是公共Play存储库),以便Play能够找到它?我自己不知道Play framework,但通常有两种选择。游戏是否包含自己的Maven版本?如果是这样,您可以将分发管理设置配置到Play框架的pom.xml,只需使用“mvn部署”。只需按照以下maven deploy plugin文档中的说明配置Nexus即可:
如果没有Maven build for Play框架,您
尝试暂存我的Play Framework java示例时出现错误310。如有任何协助,将不胜感激:
此处的完整错误输出:
Cloud Foundry要求将Play应用程序作为zip文件推送,该文件是使用Play dist命令生成的:
我可以通过以下方式在Mac OS X上推送您的应用程序:
~/Downloads/SecureSocial $ sbt play clean dist
~/Downloads/SecureSocial $ vmc push --path modules/secure
我有一种感觉,这将是一个非常愚蠢的问题,但我厌倦了没完没了地阅读文档,甚至不确定自己是否走上了正确的道路
我正在尝试让Play框架在我的服务器上运行。我拥有此服务器的root访问权限,它使用CentOS作为操作系统。我可以使用brew软件包管理器在本地OS X机器上完美地运行Play框架,但我似乎无法使用yum软件包管理器(CentOS使用的)找到Play框架,因此我必须手动下载并安装框架,这是我目前遇到的问题
到目前为止,我所做的只是使用wget将Play framework安装文件复制到Ce
我听说并读到play 2有一个独立的模板引擎。我很难找到任何文档来解释如何使用它。有人能告诉我如何将它作为一个独立的而不是框架来使用吗?
这是spray.io的人从Play 2中复制出来的,用于构建在各种spray.io组件上的应用程序。
这是spray.io的人从Play 2中复制出来的,用于各种spray.io组件上构建的应用程序。旋转已移回播放,因此您可能想签出旋转已移回播放,因此您可能想签出我怀疑您是否能找到任何相关文档,在这里,你会发现一些提示:我怀疑你是否能找到任何关于这方面的文档,
从Play 2.0.4迁移到Play 2.1.1后,出现以下错误:
[error] /home/xxx/project/app/controllers/Application.scala:489: type mismatch;
[error] found : play.api.data.Form[contents.Entry]
[error] required: play.data.Form[contents.Entry]
[error] Ok(views.html.shareK
我正在开发一个Play2.1.1应用程序,在开发模式下没有任何问题(即使用run命令,甚至使用start)。当我使用dist命令将其投入生产时,问题就出现了。我可以毫无问题地部署应用程序,但当我尝试发出任何请求时,会出现ClassNotFoundException异常
MacBook-:myproject-1.0-SNAPSHOT Marcos$ sh start
play server process ID is 6003
[info] play - Application started (
在Playframework 2.2中,可以根据请求绑定实体,如下所示:
Form<EntityA> form = form.bindFromRequest();
EntityA entity = filledForm.get();
但这并不优雅,因为我需要通过多部分表单数据读取文件,并通过bindFromRequest读取其他字段
我想这样做:
Form<EntityA> form = form.bindFromRequest();
EntityA entity =
遇到了一个关于哈德逊和玩耍的奇怪问题。当通过命令行(使用“play run”命令)运行/启动新的play项目/应用程序时,应用程序将正常启动,并等待您点击CTL+D(这是预期的)。想象一个shell脚本“run play.sh”包含以下内容:
cd my-play-app
play run
echo "Play exited"
当上面的脚本在本地运行时,我会看到以下输出
--- (Running the application from SBT, auto-reloading is enabl
我的play framework 2.1.5在重写HandlerNotFound和onError上的全局设置时遇到问题
public class Global extends GlobalSettings {
public Result onHandlerNotFound(RequestHeader request){
return play.mvc.Results.notFound("request" + request.uri());
如果我有一个包含一对一关系的模型:
class Person {
int id;
String name;
int age;
Detail detail;
}
class Detail {
int id;
String description
}
如果我有详细信息id,如何根据详细信息id获取人员
在django中,我可以执行类似Person.objects.filterdetail\uuu id=id\u of\u detail[0]的操作,看看这是否有帮助
我希望将我的长SQL存储在Play框架模板中,然后我可以向模板提供参数。我该怎么做?做这件事的好方法是什么?使用Anorm或Slick,您可以使用SQL字符串插值,它允许在大字符串中混合Scala表达式/值。即使它不像模板文件那样位于单独的文件中,我认为这是一种很好的方式。播放模板用于视图和视图片段。在那里存储SQL实际上没有意义,因为它是模型层的一部分。您所描述的与典型的模型函数没有什么不同。如果您发现自己需要对不同的方法使用相同的查询,那么您可能需要考虑为什么不将它们折叠成一个函数。
我正在尝试下载PlayFramework2.3.5,但在下载文件之前,我不断收到输入密码的提示。你知道怎么回事吗
截图:
Play Framework下载页面似乎嵌入了来自CloudBees网站的图像。在某些时候,CloudBees图像徽标_small.png可能是可以访问的,但现在它被禁止了。由于查看CloudBees图像并不重要,因此可以尝试取消该对话框。当我在Chrome中查看页面时,我根本看不到错误,除非我使用开发者工具。我只是取消了那个框,继续下载typesafe activator。
我使用TypeSafe激活器创建了一个非常简单的Play2项目。但是,我无法找到如何在SBT控制台中运行它。可能吗?如果是,请告诉我如何操作。假设您没有运行多模块项目,sbt run就足够了 也许对你有帮助
执行dist命令时,是否可以将时间戳附加到生成的zip文件名
假设我的项目名为“backend”,当前的开发版本为0.2.3-SNAPSHOT。我想做的是执行dist命令并获取一个名为backend-0.2.3-SNAPSHOT-20150506.zip的文件。
但是,我只想在快照版本上执行dist操作时附加时间戳,而不是生产版本(例如0.2.3)
我正在使用Play 2.4.0-RC1和sbt 0.13.8
import com.typesafe.sbt.packager.Keys._
我开始学习反应式平台和研究教程模板。基本教程正常开始
然后我开始研究反应地图教程,activator说我需要免费试用订阅来学习,我应该为制作订阅付费。我很困惑。我该付什么钱?我应该为从基本模板到反应式映射功能的项目增长生产付费吗?什么可以阻止我将功能从一个模板移动到基本模板?我支付的费用是什么?反应式的所有部分都是开源的?请参阅
现在只需获得免费试用订阅,并在中创建订阅ID为的typesafe.properties。subscription允许使用一些附加的db驱动程序访问typesafe平台存
运行activator~run时,会发生以下情况:
当dev服务器第一次运行时,我在控制台中收到一条消息,说服务器正在侦听端口9000
现在,当我更改文件并保存时,没有任何内容输出到控制台
但是,当我刷新页面时,我会在控制台中看到一条关于重新加载的消息,浏览器也会加载
我以为~run意味着每次文件更改时都要重新运行?根据:
提示:您可以使用~run运行应用程序,以便在文件更改时启用直接编译。这样,当您在视图中创建新模板时,scala模板文件将自动发现,当文件更改时,将自动编译。如果您使用正常运行
我想要一条这样的路线:
GET /login com.me.controllers.Login(returnurl: String)
但是我想要http://127.0.0.1:9000/login为有效路线,默认为http://127.0.0.1:9000/login?returnurl=%2F即索引页
我可以通过重定向来实现这一点(我有一个自定义重定向控制器),但我想知道是否有更干净的方法来实现这一点?您可以使用允许指定的语法。
例如,您可以执行以下操作:
GET /login c
我正在尝试几种在我的play framework应用程序中使用Browserify的方法,其中之一是使用npm作为包管理器。安装了几个模块,典型的node_modules文件夹出现在项目的根目录下
通过使用Browserify和Gulp,我能够从这些模块中“要求”Javascript并使用它(以Bootstrap为例)
然而,在加载CSS(例如,用于引导)时,我尝试了不同的方法,但都不起作用
首先,我尝试在一个普通的HTML/css项目中使用它,在安装了npm模块之后,我能够用一行简单的代码导入
我正在使用Play2.6和ReactiveMongo 0.13构建一个web应用程序。但当我尝试运行该应用程序时,我得到以下输出:
ProvisionException: Unable to provision, see the following errors:
1) No implementation for play.modules.reactivemongo.ReactiveMongoApi was bound.
while locating play.modules.reacti
1 2 3 4 5 6 ...
下一页 最后一页 共 68 页