Мне интересно, как я могу заполнить текстовое поле в моем представлении из списка в моем контроллере, я некоторое время искал примеры, но на самом деле ничего не нашел. Я не уверен, как именно получить доступ к текстовому полю из представления, где, как в Java, вы могли бы сделать что-то простое, например jTextField.getText()
Мне также интересно, как получить текст в моем текстовом поле.
Ниже я приведу пример кода того, что я делаю.
Контроллер:
def loadFile = {
def propFile = "c:/props.txt"
def propMap = [:]
def propList = []
new File(propFile).eachLine { line ->
def (key,value) = line.split(':').collect { it.trim() }
propMap."$key" = "$value"
if(propMap) {
propList << propMap
propMap = [:]
}
}
}
def saveFile = {
//get contents of text box
//over-write props.txt with new information
}
Вид:
<g:textField name="properties"/>
<span class="menuButton"/><g:link action="loadFile" controller="myController">Load File</g:link>
<span class="menuButton"/><g:link action="saveFile" controller="myController">Save File</g:link>
Итак, мой вопрос кажется относительно простым, как мне получить доступ к текстовому полю, когда я хочу заполнить его и сохранить данные из него?
.
.
.
EDIT
После ознакомления с некоторыми примерами, представленными вами, ребята, у меня есть последний вопрос.
Почему следующий код действует по-разному при нажатии кнопки Load File
?
<g:form controller="drive">
<g:textArea name="properties" value="${params.param1}" rows="50" cols="6"/>
<br/>
<g:submitButton name="loadFile" value="Load File"/>
<g:submitButton name="saveFile" value="Save File"/>
</g:form>
<span class="menuButton"/><g:link action="loadFile" controller="drive">Load File</g:link>
При нажатии на g:submitButton
, имеющем дело с loadFile
, он перенаправляет меня на list
gsp. Однако, когда я нажимаю menuButton
, он загружает текстовую область с текстом из файла. Причина, по которой я спрашиваю, заключается в том, что при втором варианте кнопка не находится там, где мне бы хотелось, чтобы она была.