2012-06-28 55 views
-2

這裏跳過是我的代碼:斯卡拉playframework if語句

package controllers 

import play.api._ 
import play.api.mvc._ 
import play.api.data.Form 
import play.api.data.Forms.tuple 
import play.api.data.Forms.text 


object Application extends Controller { 

    def index = Action { 
Ok(views.html.index("Your new application is ready.")) 
} 

val form = Form(
tuple(
    "x_card_num" -> text, 
    "x_exp_date" -> text, 
    "exp_year" -> text, 
    "exp_month" -> text, 
    "x_card_code" -> text, 
    "x_first_name" -> text, 
    "x_last_name" -> text, 
    "x_address" -> text, 
    "x_city" -> text, 
    "x_state" -> text, 
    "x_zip" -> text, 
    "save_account" -> text 
) 
) 

def payment = Action { implicit request => 
def values = form.bindFromRequest.data 


val x_card_num = if (values isDefinedAt "x_card_num") values("x_card_num") else "" 
val x_exp_date = if (values isDefinedAt "x_exp_date") values("x_exp_date") else "" 
val exp_year = if (values isDefinedAt "exp_year") values("exp_year") else "" 
val exp_month = if (values isDefinedAt "exp_month") values("exp_month") else "" 
val x_card_code = if (values isDefinedAt "x_card_code") values("x_card_code") else "" 
val x_first_name = if (values isDefinedAt "x_first_name") values("x_first_name") else "" 
val x_last_name = if (values isDefinedAt "x_last_name") values("x_last_name") else "" 
val x_address = if (values isDefinedAt "x_address") values("x_address") else "" 
val x_city = if (values isDefinedAt "x_city") values("x_city") else "" 
val x_state = if (values isDefinedAt "x_state") values("x_state") else "" 
val x_zip = if (values isDefinedAt "x_zip") values("x_zip") else "" 
val save_account = if (values isDefinedAt "save_account") values("save_account") else "" 

val message = if (save_account=="save_account") { 
    val test = "it is saved" 
    "account saved" 
} else { 
    val test= "it is not saved" 
    "" 
} 

     Ok(views.html.payment(message,x_card_num,x_exp_date,exp_year,exp_month,x_card_code,x_first_name,x_last_name,x_address,x_city,x_state,x_zip,save_account)) 
} 

} 

出於某種原因,該變量測試未在以下if語句得到定義:

val message = if (save_account=="save_account") { 
    val test = "it is saved" 
    "account saved" 
} else { 
    val test= "it is not saved" 
    "" 
} 

現在變量測試ISN」沒準備好。它設置消息變量,但不是測試變量。

+3

您正在嘗試使用Scala的,如果它是PHP。請閱讀關於Scala的書!這是連續的第三個問題,是絕對基本的東西,可以在任何書中閱讀。 – drexin

回答

2

您聲明val message在代碼塊中,並且您正在外部使用它。

你可以做到這一點像:

val message = if (save_account=="save_account") { 
     "account saved" 
    } else { 
     "" 
    } 
+0

請參閱我上面的編輯。謝謝! – user1435853

+0

你不能在if語句中聲明新的變量嗎?這對我來說很奇怪。 – user1435853

+0

問題是不一樣的...你應該搜索一些關於「範圍」「上下文」和「變量聲明」的信息 – iwalktheline