Play2常用操作总结

  • activator项目加载优先使用本地仓库

要指定一个默认的,需要先指定一个本地地址(修改activator-launch.jar中的sbt.boot.properties):

[repositories]
  local
  activator-launcher-local: file://${activator.local.repository-${activator.home-${user.home}/.activator}/repository}, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]
  activator-local: file://${activator.local.repository-${activator.home-${user.home}/.activator}/repository}, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]
  maven-central

也就是加入activator-launcher-local:

  • Cookie

//从request中获得Cookie
request.cookies.get("isShowAll").map{ isShowAll => 
  //TODO
}.getOrElse{ //TODO }

//设置Cookie
Ok().withCookies(Cookie("isShowAll","false"))
  • Session

request.session.get("connected").map { user =>
  
}.getOrElse { }
  • 前后台JSON

def delNodes = Action(BodyParsers.parse.json) { request =>
   val nodeResult = request.body.validate[Node]
    nodeResult.fold(
      errors => {
        
      },
      node => {
        val b: Boolean = new ZKService(node.zkServer).delNodes(node.key)
        if(b){
          Ok(Json.obj("status" ->"OK", "message" -> ("Node '"+node.key+"' deleted successful!") ))
        }else{
          Ok(Json.obj("status" ->"KO", "message" -> ("Node '"+node.key+"' deleted failed!") ))
        }
      }
    )
}
  • 遍历JsArray

val copyIdArr: JsArray = (request.body \ "copyIdArr").as[JsArray]
copyIdArr match {
  case JsArray(ele) => {
     ele.foreach{ t =>
         println(t)
     }
  }
}
  • 遍转换Scala的list为JSON

val json : play.api.libs.Json.toJson(list)
  • 将JsValue序列化

Json.stringify(jsValue)

  • 过滤List中的属性

val node2 : List[Node] = node.filter(a => a.updateTime==time)


你可能感兴趣的:(Play2常用操作总结)