小编rjc*_*rjc的帖子

如何使用jsoup替换带span标签的单词?

假设我有以下html:

<html>
<head>
</head>
<body>
    <div id="wrapper" >
         <div class="s2">I am going <a title="some title" href="">by flying</a>
           <p>mr tt</p>
         </div> 
    </div>
</body>    
</html>
Run Code Online (Sandbox Code Playgroud)

文本节点中任何等于或大于4个字符的单词,例如单词"going"将替换<span>going<span>为原始html中的html内容(不是文本)而不更改任何其他内容.

如果我尝试做像element.html(替换)这样的事情,问题是如果让当前元素<div class="s2">也将擦除<a title="some title"

screen-scraping jsoup

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

如何在scala中实现Serializable接口?

我有scala类,如:

@Entity("users")
class User(@Required val cid: String, val isAdmin: Boolean = false, @Required val dateJoined: Date = new Date() ) {
  @Id var id: ObjectId = _



    @Reference
  val foos = new ArrayList[Foo]

    }
Run Code Online (Sandbox Code Playgroud)

如果它是一个Java类,我只需要实现java.io.Serializable,但这在scala中不起作用.上面宣布的foos也是私人还是公共?

scala

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

jQuery Ajax和服务器的重定向响应

我有一种情况,我发送jquery ajax post请求,但在我的Web应用程序中,此特定ajax请求的处理程序(处理post参数后)将调用另一个控制器中的操作(不确定这是否称为重定向),这基本上呈现整个网站页面(如页面刷新).但我注意到浏览器会显示相同的页面,而不是刷新新页面的内容.

有什么不对?我该如何处理这种情况?

我不得不编辑我的问题因为我改变了我的ajax调用.

这就是代码的样子:

function chkSubmit(event, actionType) {


        var msgid = showlst('Please wait ...');
        var data = ''
        if (actionType == 'IAmDone') {
            var letters = 'e,b,c'

            data = 'actionType=' + actionType + '&letters=' + letters;

        } else data = 'actionType=' + actionType;
        $j.ajax({
            type: 'POST',       
            url: context + '/app/handleChk',
            data:  data
        });

        return false;
}
Run Code Online (Sandbox Code Playgroud)

单击页面上的按钮时,将运行上述功能.但同样的页面继续显示.浏览器调试器显示它确实从它应该刷新页面的新操作接收到200 OK响应.我使用的是Chrome浏览器和jquery 1.6.1

对不起我的代码示例中的拼写错误.我纠正了.

javascript ajax jquery

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

包含混合类型值的Scala映射

我有一个返回的函数(groovy代码)

[words: "one two", row: 23, col: 45]
Run Code Online (Sandbox Code Playgroud)

在scala中,我将上面更改为scala Map,但后来我被迫将其声明为

Map[String, Any]
Run Code Online (Sandbox Code Playgroud)

但是这样做的缺点是,如果我访问一个键,例如map("words"),我必须添加样板

map2("words").asInstanceOf[String]
Run Code Online (Sandbox Code Playgroud)

在scala中是否有更好的方法不需要我添加asInstanceOf?

scala

5
推荐指数
2
解决办法
6763
查看次数

如何将java Map转换为scala Map的类型为LinkedHashMap [String,ArrayList [String]]?

从Java API我得到

java.util.LinkedHashMap[String,java.util.ArrayList[String]]
Run Code Online (Sandbox Code Playgroud)

然后我需要将其作为参数传递给scala程序

val rmap = Foo.baz(parameter)
Run Code Online (Sandbox Code Playgroud)

此参数是scala类型:

Map[String,List[String]]
Run Code Online (Sandbox Code Playgroud)

那我怎么能轻易转换

java.util.LinkedHashMap[String,java.util.ArrayList[String]]
Run Code Online (Sandbox Code Playgroud)

至

Map[String,List[String]]
Run Code Online (Sandbox Code Playgroud)

我尝试使用import scala.collection.JavaConversions._,但在我的情况下,这不起作用(或者至少这是我猜的)因为scala代码在模板函数中,我只能放入导入scala.collection.JavaConversions._ inside功能.模板功能如下:

def someFunc(param: java.util.LinkedHashMap[String,java.util.ArrayList[String]]) = {
import scala.collection.JavaConversions._
val rmap = Foo.baz(param) // param is of scala type Map[String,List[String]]
.......
Run Code Online (Sandbox Code Playgroud)

现在scala不会自动将java类型转换为scala类型.

这是我得到的编译器错误:引发的错误是:类型不匹配; found:java.util.LinkedHashMap [String,java.util.ArrayList [String]] required:Map [String,List [String]]

scala

4
推荐指数
2
解决办法
6502
查看次数

play框架中的scala模板中的变量

我需要能够声明变量,稍后我需要引用它们.为了实现这一点,这是我的scala模板的简化版本:

@(map1: 
java.util.LinkedHashMap[String,java.util.LinkedHashMap[String,Object]]) 
@import scala.collection.JavaConversions._ 
@import play.Logger 
@for( (key,value) <- map1) { 
    <div> 
    @{ 
       val rmap = Foo.someMethod(value) 
       val baz = rmap.getOrElse("baz", null) 
    <table border="0"  cellpadding="0" cellspacing="0"  > 
    <tbody> 
    <tr> 
      <td rowspan="3"> 
        <div class="bar"> 
          @baz 
        </div> 
      </td> 
    </tr> 
    </tbody> 
  </table> 
  } 
  </div> 
} 
Run Code Online (Sandbox Code Playgroud)

是否高于有效的scala模板,如果不是,我如何声明baz并在标记中稍后引用它?我使用的是1.2.2RC2和scala 0.9.1

scala playframework

4
推荐指数
1
解决办法
6913
查看次数

在scala中分配给None或null或_的类成员哪个更好,为什么?

我有一个Scala域类(用于持久化到数据库),如:

class Foo() {

var bar: Long = _ // or None or null ???
var jaz: String = _ // or None or null or empty string "" ???
}
Run Code Online (Sandbox Code Playgroud)

如果字段bar和jaz是必填字段而不是可选字段,如何影响答案?

scala

4
推荐指数
2
解决办法
853
查看次数

Scala val和var相关的问题和scala要求我在声明时分配一个值

我有一个我要声明的变量:

val foo : Baz

for (s <- barList) {
 if s.tag == "java"
   foo = s
}
Run Code Online (Sandbox Code Playgroud)

一旦foo分配了一个值,foo就无法重新分配.从这个角度来看foo是val类型而不是var.但上面不是有效的scala代码,因为scala强制在声明时分配值.即使我使用var,scala也会强制我分配一个值.有更好的解决方案吗?我想要val的原因是因为它导致更好的性能和val语义适合上述场景.

scala

3
推荐指数
3
解决办法
446
查看次数

Groovy语言有?处理NullPointer异常的语法,scala中有类似的东西吗?

假设我有来自查询字符串请求参数的String参数.如您所知,参数可能丢失或可能存在,但值为空字符串.在groovy语言中,我可以简单地做一些事情

  List lst = words?.split(',') 
Run Code Online (Sandbox Code Playgroud)

如果单词为null,则lst将为null而不是抛出NPE

scala中的类似快捷方式是什么?

Option [String]在这里不是一个选项,因为它是来自查询字符串的单词是String类型.

java groovy scala

2
推荐指数
2
解决办法
1282
查看次数

在scala 2.8中使用scala.collection.JavaConversions._时,scala和java集合之间的自动转换

我有返回此类型的java API:

ArrayList[ArrayList[String]] = Foo.someJavaMethod()   
Run Code Online (Sandbox Code Playgroud)

在scala程序中,我需要将上面的类型作为参数发送到类型为的scala函数"bar"

def bar(param: List[List[String]]) : List[String] = {

}
Run Code Online (Sandbox Code Playgroud)

所以我称之为:

val list = bar(Foo.someJavaMethod())
Run Code Online (Sandbox Code Playgroud)

但这不起作用,因为我得到编译错误.

我以为有这个导入

import scala.collection.JavaConversions._ 
Run Code Online (Sandbox Code Playgroud)

将在Java和Scala集合之间进行隐式自动转换.

我也试过用过:

Foo.someJavaMethod().toList 
Run Code Online (Sandbox Code Playgroud)

但这也不起作用.

这个问题的解决方案是什么?

scala scala-java-interop scala-collections

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