2012-05-05 6 views
3

Я новичок в Scala и в структуре Play. Я должен создать модуль «КОНТАКТЫ», но я получаю следующее сообщение об ошибке:Действие контроллера не скомпилировано с «несоответствием типа»: Требуется блок: play.api.mvc.Result »

type mismatch found : Unit required: play.api.mvc.Result 
    contactVal.save() 
where contactVal is defined as 
    val contactVal = new Contact(service) where service is 
    val service = new ExchangeService() 

Как я могу сохранить новый контакт EWS?

Мой код:

def add = Action(parse.json) { 
    implicit r=> 
    val contactVal = new Contact(service) 
    val userId = (r.body \ "userId").asOpt[String].getOrElse("") 
    val contactId = (r.body \ "id").asOpt[String].getOrElse("") 
    val givenName = (r.body \ "givenName").asOpt[String].getOrElse("") 
    val fName = (r.body \ "fName").asOpt[String].getOrElse("") 
    val lName = (r.body \ "lName").asOpt[String].getOrElse("") 
    val displayName = (r.body \ "displayName").asOpt[String].getOrElse("") 
    val emailId1 = (r.body \ "emailId1").asOpt[String].getOrElse("") 

    val streetB = (r.body \ "streetB").asOpt[String].getOrElse("") 
    val cityB = (r.body \ "cityB").asOpt[String].getOrElse("") 
    val stateB = (r.body \ "stateB").asOpt[String].getOrElse("") 
    val postalcodeB = (r.body \ "postalcodeB").asOpt[String].getOrElse("") 
    val countryB = (r.body \ "countryB").asOpt[String].getOrElse("") 
    val phoneHome = (r.body \ "phoneHome").asOpt[Int].getOrElse("") 
    val bday = (r.body \ "bday").asOpt[String].getOrElse("") 

    contactVal.setGivenName(givenName) 
    contactVal.setNickName(fName) 
    contactVal.setSurname(lName) 
    contactVal.setDisplayName(displayName) 

    val bdayDate= new Date() 
    bdayDate.setDate(bday.toInt) 
    contactVal.setBirthday(bdayDate) 

    contactVal.save() 
} 
+0

Пожалуйста, добавляйте более подробную информацию, используйте форматирование и, возможно, минимальные образцы. – biesior

+0

Здесь можно найти весь код: – Alpesh003

+0

Эта строка "contactVal.save()" дает ошибку: не найден тип несоответствия: Требуется устройство: play.api.mvc.Result – Alpesh003

ответ

6

Проблема заключается в том, что последняя строка кода в вашем теле Action не возвращает объект play.api.mvc.Result.

См: http://www.playframework.org/documentation/2.0.1/ScalaActions

Try добавления Ok (или какой-нибудь другой объект SimpleResult) в конце вашего тела действий. Пример:

def add = Action(parse.json) { request => 
    ... 
    contactVal.save() 
    Ok("contact saved") // or if you want to render a templated: Ok(someTemplate()) 
} 
Смежные вопросы