如何使用Scala在Play Framework 2.0中创建全局对象/变量?
我想创建一个曾经实例化的对象,可以在多个控制器动作之间保持不变,这样不同的动作仍然可以调用同一个对象(因为初始化对象非常昂贵).
这可能不存储到数据库中吗?我尝试将对象粘贴到onStart方法的Global对象中,如下所示:
http://www.playframework.org/documentation/2.0/ScalaGlobal
这是我的代码:
(在根应用程序文件夹中)
object Global extends GlobalSettings {
override def onStart(app:Application) {
var foo = new Foo
}
}
}
Run Code Online (Sandbox Code Playgroud)
在我的控制器操作中,我尝试按名称调用变量,但它不起作用.
我是使用Play Framework 2.0的新手(我正在使用Scala)并对会话有疑问.
我来自Ruby on Rails背景,因此我倾向于考虑我在Play Framework中学习的关于Ruby on Rails的所有内容.
考虑到这一点,当我在视图中时,有没有办法让我调用存储在Session中的东西?
如果我在会话中存储了"hello" - >"world",我希望能够执行类似@ session.get("hello")的操作,并且能够在视图中使用"world".这可能吗?
我看到的另一个选项是将值存储在控制器中的变量中,并通过执行类似OK(var)的操作将其传递给视图,但这种方式似乎有点笨重,特别是如果我开始使用更多变量.
谢谢!
所以我试图让我的程序输出一个带有名单列表的文本文件.一些名字有奇怪的字符,如Åström.
我从一个以"UTF-8"编码的网页中抓取了这些名称列表,或者至少我很确定它的确如此,因为页面来源说
"meta http-equiv ="Content-Type"content ="text/html; charset = UTF-8"/"
这是我到目前为止所尝试的:
public static void write(List<String> list) throws IOException {
Writer out = new OutputStreamWriter(new FileOutputStream("test.txt"), "UTF-8");
try {
for (int i=0;i<list.size();i++) {
try {
byte[] utf8Bytes = list.get(i).getBytes("UTF-8");
out.write(new String(utf8Bytes, "UTF-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
out.write(System.getProperty("line.separator"));
}
}
finally {
out.close();
}
}
Run Code Online (Sandbox Code Playgroud)
我有点困惑为什么它不起作用.我得到的输出是"Ã...strÃm",这非常奇怪.
有人可以指点我正确的方向吗?谢谢!
在另一个不相关的说明中,除了笨重之外,是否有更简单的方法将新行写入文本文件
out.write(System.getProperty( "line.separator"));
我有?我在某个地方看到了网络并且它有效,但我只是想知道是否有更清洁的方式.
我是D3的新手,希望实现类似于此处所示的点击 - 拖动缩放:http://www.highcharts.com/demo/line-time-series
我已经有了一个我已经构建的折线图,但我对如何实现它感到困惑.
我想我需要一些JS事件处理程序来查找我的mousedown和mouseup发生的位置.但是,如何在用户拖动时创建图形上出现的阴影?
所以我有一堆选项卡都在list元素中.我在View中使用Ruby on Rails,所以它看起来像这样:
<div id="top-nav">
<ul>
<li> <%= link_to "Home", user_root_path() %> </li>
<li> <%= link_to "Manage", manage_path() %> </li>
</ul>
</div>
Run Code Online (Sandbox Code Playgroud)
等等.
如何在CSS中设置样式以便我可以单击文本周围的框以转到该链接,而不必单击文本本身?
我查看了一些答案并尝试使用display:block; 在top-nav和li元素中,但它没有工作.
谢谢!