在build.sbt文件中有一个设置.enablePlugins(PlayScala),它将我的项目设置为scala.
现在我也想使用Java.我发现有两个版本的data.Form(play.data._和import play.api.data._).所以我使用了参数列表的完全限定类型.
@(loginForm: play.data.Form[User_LoginForm])
@import helpers._
@helper.form(action = routes.ApplicationJava.login(), 'id -> "loginForm") {
@helper.inputText(loginForm("username"))
@helper.inputPassword(loginForm("password"))
}
Run Code Online (Sandbox Code Playgroud)
但是现在我对辅助函数有同样的问题,我不知道helper的完全限定名是什么,以便它们与play.data.Form(Java)一起使用.
有没有办法使用Java的辅助函数,即使项目设置为scala?
编辑:
此行的错误消息>> @helper.inputText(loginForm("username"))<<是:
type mismatch; found : play.data.Form.Field required: play.api.data.Field
Run Code Online (Sandbox Code Playgroud)
编辑:
这是我的Java控制器的相应部分.
public static Result showForm() {
Form<User_LoginForm> userForm = play.data.Form.form(User_LoginForm.class);
User_LoginForm ulf = new User_LoginForm();
ulf.username = "abc";
userForm = userForm.fill(ulf);
return ok(views.html.userLoginJava.render(userForm));
}
Run Code Online (Sandbox Code Playgroud) 我有一个 UserControl 帽子,其中包含几个元素(列表框、按钮)和一个带有组合框和按钮的弹出窗口。
我尝试在用户控制上失去焦点,但是每当 UserControl 内的焦点发生变化时,Lost(Keyboard)Focus 事件就会触发。
但我不想知道一个孩子何时失去对 UserControl 的另一个孩子的焦点,但我想知道,当键盘焦点移动到 UserControl 之外的元素并且它是 Popup 时。
有没有办法在不检查每个元素的 LostFocus 的情况下检测到它?
我知道这不是Scala写东西的方式.我想,在Scala中你会使用map.但是我想用这种方式编写它,因为它更像Java/c ++.但是,编写以下代码时,Scala编译器会抱怨"方法addGroup具有return语句;需要结果类型".省略返回并使用else分支有效.但是出于格式化的原因,我想使用return,因为我不想缩进代码的其余部分,如果你使用"else {}"就会发生这种情况.
在哪里添加结果类型.并且"未来[结果]"是正确的类型?
def addGroup = Action { implicit request =>
val optionUser = GetUserFromSession(request)
if (optionUser == None) {
return Redirect(routes.ApplicationUser.show(0))
}
Redirect(routes.ApplicationUser.show(optionUser.get.id))
}
Run Code Online (Sandbox Code Playgroud) StreamWrite.Write目前超载Int16,Int32,Int64,Double,Single,String等等.
为什么我需要使用动态?当调用WriteList方法时,编译器知道它被调用Int32,String.......
那么为什么我不能直接使用e(类型T = Int32)StreamWrite.Write呢?
public void WriteList<T>(List<T> list)
{
int count = list.Count();
StreamWriter.Write(count);
foreach(T e in list)
{
dynamic d = e;
StreamWriter.Write(d);
}
}
Run Code Online (Sandbox Code Playgroud) 我有这行代码:
Ok(views.html.main("Title",views.html.userShow(user)))
Run Code Online (Sandbox Code Playgroud)
根据调试器views.html.userShow(user)返回一个Html对象.
main2以.开头
@(title: String)(content: play.twirl.api.Html)
Run Code Online (Sandbox Code Playgroud)
现在我收到错误消息:
方法适用的参数太多:(title:String)(content:play.twirl.api.Html)play.twirl.api.HtmlFormat.Appendable in object main2
这段代码有什么问题?
我想使用XMLHttpRequest发送多部分表单。我要附加的文件是jpg文件。将文件追加到FormData对象可以正常工作。
但是我想在发送之前处理图像文件。因此,我有一个使用Uint8Array作为输入和输出的库。所以我将处理后的图像作为UInt8Array。
我尝试使用
form.append("picture", new Blob(fileAsArray, {type: "image/jpg"} ));
Run Code Online (Sandbox Code Playgroud)
但它会创建一个八位位组/流。那么,如何通过XMLHttpRequest multipart / form发送Uint8Array以便服务器看到与发送文件对象相同的内容?
为什么编译器会优化我的代码?
我有2个功能:
public void x1() {
x++;
x++;
}
public void x2() {
x += 2;
}
public void x3() {
x = x + 2;
}
public void y3() {
x = x * x + x * x;
}
Run Code Online (Sandbox Code Playgroud)
这是我在发布模式下编译后可以看到的ILSpy:
// test1.Something
public void x1()
{
this.x++;
this.x++;
}
// test1.Something
public void x2()
{
this.x += 2;
}
// test1.Something
public void x3()
{
this.x += 2;
}
// test1.Something
public void y3()
{
this.x = this.x …Run Code Online (Sandbox Code Playgroud) c# ×3
scala ×3
arraybuffer ×1
focus ×1
generics ×1
java ×1
javascript ×1
list ×1
optimization ×1
wpf ×1