使用jQuery和Play框架2.0

4

我想使用jQuery打开一个lightbox,但出现了问题。 这是我的Application.java代码:

    @(products: List[Products])

    @import helper._

        <script type="text/javascript" src="../public/javascripts/jquery-1.7.2.min.js"></script>
        <!-- Add mousewheel plugin (this is optional) -->
        <script type="text/javascript" src="../public/javascripts/jquery.mousewheel-3.0.6.pack.js"></script>

        <!-- Add fancyBox main JS and CSS files -->
        <script type="text/javascript" src="../public/javascripts/jquery.fancybox.js?v=2.0.6"></script>
        <link rel="stylesheet" type="text/css" href="../public/stylesheets/jquery.fancybox.css?v=2.0.6" media="screen" />


        <script type="text/javascript">
        $(document).ready(function() {

$('.fancybox').fancybox();

// my code
           });
// rest of the code

它给我报错了

在Firebug中显示ReferenceError: $未定义。我甚至尝试使用jQuery来替换$,但仍然完全无法工作。同时,我看到jQuery被加载在头部部分。 请帮助我解决这个问题。

conf/routes文件:

# Routes
# This file defines all application routes (Higher priority routes first)
# ~~~~

# Home page
#GET     /                           controllers.Application.index()

# Map static resources from the /public folder to the /assets URL path
GET     /assets/*file               controllers.Assets.at(path="/public", file)

# Products list (to fetch the list of all the products)
GET     /products                controllers.Application.list

GET     /products/:id           controllers.Application.findAll1(id:Integer)

请按照此解决方案操作:https://dev59.com/m1_Va4cB1Zd3GeqPRkJz#43166837 - Md Samiul Alim Sakib
3个回答

8
我认为你的JS路径是错误的。
如果您使用默认的Play配置,您的JavaScript路径应该如下所示:
<script type="text/javascript" src="/assets/javascripts/jquery-1.7.2.min.js"></script>
...

更好的是,使用反向路由,您应该使用以下内容:
<script type="text/javascript" src="@routes.Assets.at("/javascripts/jquery-1.7.2.min.js")"></script>
...

静态资源通过在您的conf/routes文件中定义的特殊路由提供:
# Map static resources from the /public folder to the /assets URL path
GET     /assets/*file               controllers.Assets.at(path="/public", file)

这个路由仅仅是在本地public文件夹和/assets网址之间建立了一个绑定关系。

路径是正确的。我看到JS文件甚至在头部加载了。 - Milople Inc
我已经在我的问题中添加了。 - Milople Inc
请尝试我的解决方案,因为通过查看您的“routes”文件,我不知道您的JS路径如何正确... - ndeverge
1
请查看我的最后一次编辑,以便使用反向路由;-) - ndeverge

2

0

这是使用Play框架中Jquery和Ajax的简单示例... 首先配置路由1

路由

此文件定义所有应用程序路由(优先级较高的路由先)

~~~~

主页 GET / 控制器.Application.index GET /newUser 控制器.Application.newUserSign GET /login

控制器.Application.signInUser GET /newUserSignUP
控制器.Application.newUserSignUP1 POST /newUserSignUP
控制器.Application.newUserSignUP POST /signIn
控制器.Application.signIn POST /userDetail
控制器.Application.userDetail GET /logout
控制器.Application.logout POST /sendRequest
控制器.Application.sendRequest POST /friendDetail
控制器.Application.friendList POST /requestList
控制器.Application.requestList POST /acceptRequest
控制器.Application.acceptRequest GET /shwUserDetail 控制器.Application.shwUserDetail

应用程序代码如下

包 controllers

导入模型.用户 导入 play.api._ 导入 play.api.mvc._ 导入 net.liftweb.json._ 导入 net.liftweb.json.JsonDSL 导入 net.liftweb.json.Serialization.write 导入

scala.collection.mutable.ListBuffer

object Application extends Controller { implicit val format = DefaultFormats def index = Action { Ok(views.html.index()) } def newUserSign = Action { Ok(views.html.newUserSignUpForm()) } def newUserSignUP = Action { implicit request => val a = request.body.asFormUrlEncoded val id = a.get("id").head val fnm = a.get("fnm").head val lnm = a.get("lnm").head val email = a.get("email").head val res = a.get("res").head val num = a.get("num").head val pwd = a.get("pwd").head

val obj = User(id, fnm, lnm, email, res, num, pwd);
if (models.UserModel.create(obj) > 0) {
  Ok(views.html.newUserWlcmPage())
} else {
  Ok(views.html.Error())
}

//Ok(" congratulation u r finally registered.. your  id is " + id + "  & your name is => " + fnm + " And you lives in ::" + res)   }   def newUserSignUP1 = Action {
Ok(views.html.newUserWlcmPage())   }
def signIn = Action { implicit request =>
val a = request.body.asFormUrlEncoded
val id = a.get("id").head
val pwd = a.get("pwd").head
val data = models.UserModel.userDetail(id, pwd)

Redirect(routes.Application.shwUserDetail).withSession("id" -> id)

// Ok(views.html.userInfoPage(data)).withSession("id" -> id) }

def signInUser = Action { Ok(views.html.login()) } def shwUserDetail = Action { implicit request => val id = request.session.get("id").get val usrDetail = models.UserModel.userDetail(id) Ok(views.html.userInfoPage(usrDetail)) } def userDetail = Action { implicit request => val b = request.body.asFormUrlEncoded if (!session.get("id").isEmpty) { val id = session.get("id").get //val password = b.get("pwd").head

  val data = models.UserModel.getAllUserDetail(id)
  Ok(write(data))
} else {
  Ok("")
}   }   def sendRequest = Action { implicit request =>
val b = request.body.asFormUrlEncoded.get
val receiver_id = b.get("receiver_id").get(0)
val sender_id = request.session.get("id").get
val data = models.UserModel.friendRequest(sender_id, receiver_id)
Ok(write(Map("sucess"->true)))   }   def logout() = Action {
println("You are successfully logout")
Ok(views.html.logout()).withNewSession   }   def friendList = Action { implicit request =>   val b = request.body.asFormUrlEncoded  

val sender_id = request.session.get("id").get val data = models.UserModel.friendList(sender_id)

Ok(views.html.requestConfirmation())

} def requestList = Action { implicit request => val sender_id = request.session.get("id").get val data = models.UserModel.requestList(sender_id) Ok(write(data))

  }
def acceptRequest = Action { implicit request =>
val b = request.body.asFormUrlEncoded.get
val friend_id = b.get("friend_id").get(0)
val user_id = request.session.get("id").get
val data = models.UserModel.acceptRequest(friend_id, user_id)
Ok(write(Map("sucess"->true)))   }    } 

And the mole is as

package models import play.api.db._ import play.api.Play.current

import anorm._ import anorm.SqlParser._

case class User(id: String, fnm: String,lnm: String, email: String, res: String,num: String, pwd: String) case class User1(sender_id:String, receiver_id:String) object UserModel {

def create(obj: User) = {

DB.withConnection { implicit Connection =>

  val data = SQL("insert into user_detail values({id},{fnm},{lnm},{email},{res},{num},{pwd})").on("id" ->

obj.id, "fnm" -> obj.fnm, "lnm" -> obj.lnm,"email" -> obj.email,"res" -> obj.res, "num" -> obj.num, "pwd" -> obj.pwd).executeUpdate()

  data
}   }   def userDetail(id: String, pwd: String): List[User] = {
DB.withConnection { implicit Connection =>
  val dat = SQL("select * from user_detail where id='" + id + "' and pwd='" + pwd +"'")
  var data = dat().map(row =>
    User(row[String]("id"),row[String]("fnm"), row[String]("lnm"), row[String]("email"),row[String]("res"),row[String]("num"),row[String]("pwd"))).toList
  data
}   }   def userDetail(id: String): List[User] = {
DB.withConnection { implicit Connection =>
  val dat = SQL("select * from user_detail where id='" + id + "'")
  var data = dat().map(row =>
    User(row[String]("id"),row[String]("fnm"), row[String]("lnm"), row[String]("email"),row[String]("res"),row[String]("num"),row[String]("pwd"))).toList
  data
}   }   def friendRequest(sender_id:String,receiver_id:String)={
DB.withConnection{ implicit c=>
  val result=SQL("insert into request_table values ({sender_id},{receiver_id})").on("sender_id"->sender_id,"receiver_id"->receiver_id).executeInsert()
  println("------------------------------------\n"+result);     
  result
}
  }   def getAllUserDetail(id: String) = {
DB.withConnection { implicit Connection =>
val dat = SQL("select * from user_detail where id!='" + id +"'")
var data = dat().map(row =>
 User(row[String]("id"),row[String]("fnm"), row[String]("lnm"), row[String]("email"),row[String]("res"),row[String]("num"),row[String]("pwd"))).toList
data
}    }
 def friendList(user_id: String) = {
DB.withConnection { implicit Connection =>
val dat = SQL("select * from friend_tbl where id!='" + user_id +"'")
var data = dat().map(row =>
 User(row[String]("id"),row[String]("fnm"), row[String]("lnm"), row[String]("email"),row[String]("res"),row[String]("num"),row[String]("pwd"))).toList
data
}    }   def requestList(sender_id: String) = {
DB.withConnection { implicit Connection =>
val dat = SQL("select receiver_id from request_table where sender_id='" + sender_id +"'")
var data = dat().map(row =>
 row[String]("receiver_id")).toList
 data
}    }   def acceptRequest(friend_id:String, user_id:String)={
DB.withConnection{ implicit c=

Blockquote

  val result=SQL("insert into friend_tbl values ({friend_id},{user_id})").on("friend_id"->friend_id,"user_id"->user_id).executeInsert()
  println("------------------------------------\n"+result);     
  result
}
  } }  

and after that configure the view page enter code here

Map static resources from the /public folder to the /assets URL path GET /assets/*file controllers.Assets.at(path="/public", file)


2
这是什么烂摊子...对任何人都没有帮助。 - Neilos

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接