В следующем примере используется ajax для передачи всех полей формы в контроллер с помощью serialize, вы можете выбрать, какие из них вы хотите использовать в своем действии, как мы сделали ниже, распечатав значение текстовой области.
Затем мы отображаем текст, который обновляет div на экране.
Контроллер
class TestStuffController {
def index(){}
def myAction() {
println params.myTextArea
render 'Updated'
}
}
index.gsp
<!DOCTYPE html>
<html>
<head>
<meta name="layout" content="main">
<script type="text/javascript">
$( document ).ready( function() {
$( '#myButton' ).on( 'click' , function (event) {
$.ajax({
url: "${g.createLink( controller: 'testStuff', action: 'myAction')}",
type: "POST",
data: $( "form" ).serialize(),
success: function ( data ) {
$( '#myDiv' ).html( data );
},
error: function( j, status, eThrown ) { console.log( 'Error ' + eThrown ) }
});
});
});
</script>
</head>
<body>
<div>
<div id="myDiv"></div>
<g:form id="myForm">
<g:textArea name="myTextArea" id="myTextArea" />
<button type="button" name="myButton" id="myButton">Update</button>
</g:form>
</div>
</body>
</html>