From f6e807fb9c66a7fb24c35fac69fce7b22dffd215 Mon Sep 17 00:00:00 2001 From: Ghazi Triki <ghazi.triki@riadvice.tn> Date: Wed, 12 Jun 2019 21:16:25 +0300 Subject: [PATCH] Upgrade bbb-lti and make it standalone. --- bbb-lti/.gitignore | 14 +- bbb-lti/application.properties | 6 - bbb-lti/gradle.properties | 3 + bbb-lti/gradlew | 160 + bbb-lti/gradlew.bat | 90 + .../assets/javascripts/application.js | 27 +- .../assets/stylesheets/application.css | 2 + .../grails-app/assets/stylesheets/errors.css | 102 +- .../grails-app/assets/stylesheets/main.css | 602 +- .../grails-app/assets/stylesheets/mobile.css | 128 +- bbb-lti/grails-app/conf/BuildConfig.groovy | 92 - bbb-lti/grails-app/conf/DataSource.groovy | 17 - .../{Config.groovy => application.groovy} | 64 +- bbb-lti/grails-app/conf/logback.xml | 42 + .../org/bigbluebutton/lti}/UrlMappings.groovy | 63 +- .../controllers}/ToolController.groovy | 28 +- bbb-lti/grails-app/i18n/messages.properties | 77 +- .../grails-app/i18n/messages_es.properties | 72 +- .../grails-app/i18n/messages_fr.properties | 36 +- .../org/bigbluebutton}/BootStrap.groovy | 52 +- bbb-lti/grails-app/views/error.gsp | 45 +- bbb-lti/grails-app/views/index.gsp | 186 +- bbb-lti/grails-app/views/layouts/main.gsp | 100 +- bbb-lti/grails-wrapper.jar | Bin 0 -> 5463 bytes bbb-lti/grailsw | 431 +- bbb-lti/grailsw.bat | 275 +- .../groovy}/org/bigbluebutton/api/Proxy.java | 0 .../org/bigbluebutton/lti/Parameter.java | 0 .../groovy}/org/bigbluebutton/lti/Role.java | 0 .../org/imsglobal/basiclti/Base64.java | 0 .../imsglobal/basiclti/BasicLTIConstants.java | 0 .../org/imsglobal/basiclti/BasicLTIUtil.java | 0 .../org/imsglobal/basiclti/XMLMap.java | 0 .../org/imsglobal/json/IMSJSONRequest.java | 0 .../org/imsglobal/pox/IMSPOXRequest.java | 0 .../fonts/glyphicons-halflings-regular.eot | Bin .../fonts/glyphicons-halflings-regular.svg | 0 .../fonts/glyphicons-halflings-regular.ttf | Bin .../fonts/glyphicons-halflings-regular.woff | Bin .../main/webapp}/images/icon.ico | Bin .../WEB-INF => src/main/webapp}/tld/c.tld | 0 .../WEB-INF => src/main/webapp}/tld/fmt.tld | 0 .../main/webapp}/tld/grails.tld | 1100 ++-- .../main/webapp}/tld/spring-form.tld | 4822 ++++++++--------- .../main/webapp}/tld/spring.tld | 914 ++-- .../org}/BigbluebuttonServiceTests.groovy | 0 .../test/groovy/org}/LtiServiceTests.groovy | 0 .../groovy/org}/ToolControllerTests.groovy | 0 .../BigbluebuttonServiceSpec.groovy | 0 .../org/bigbluebutton/LtiServiceSpec.groovy | 0 .../bigbluebutton/ToolControllerSpec.groovy | 0 .../web-app/WEB-INF/applicationContext.xml | 31 - bbb-lti/web-app/WEB-INF/sitemesh.xml | 14 - 53 files changed, 4743 insertions(+), 4852 deletions(-) delete mode 100644 bbb-lti/application.properties create mode 100644 bbb-lti/gradle.properties create mode 100644 bbb-lti/gradlew create mode 100644 bbb-lti/gradlew.bat delete mode 100644 bbb-lti/grails-app/conf/BuildConfig.groovy delete mode 100644 bbb-lti/grails-app/conf/DataSource.groovy rename bbb-lti/grails-app/conf/{Config.groovy => application.groovy} (60%) create mode 100644 bbb-lti/grails-app/conf/logback.xml rename bbb-lti/grails-app/{conf => controllers/org/bigbluebutton/lti}/UrlMappings.groovy (76%) rename bbb-lti/grails-app/controllers/org/bigbluebutton/{ => lti/controllers}/ToolController.groovy (98%) rename bbb-lti/grails-app/{conf => init/org/bigbluebutton}/BootStrap.groovy (94%) create mode 100644 bbb-lti/grails-wrapper.jar rename bbb-lti/src/{java => main/groovy}/org/bigbluebutton/api/Proxy.java (100%) rename bbb-lti/src/{java => main/groovy}/org/bigbluebutton/lti/Parameter.java (100%) rename bbb-lti/src/{java => main/groovy}/org/bigbluebutton/lti/Role.java (100%) rename bbb-lti/src/{java => main/groovy}/org/imsglobal/basiclti/Base64.java (100%) rename bbb-lti/src/{java => main/groovy}/org/imsglobal/basiclti/BasicLTIConstants.java (100%) rename bbb-lti/src/{java => main/groovy}/org/imsglobal/basiclti/BasicLTIUtil.java (100%) rename bbb-lti/src/{java => main/groovy}/org/imsglobal/basiclti/XMLMap.java (100%) rename bbb-lti/src/{java => main/groovy}/org/imsglobal/json/IMSJSONRequest.java (100%) rename bbb-lti/src/{java => main/groovy}/org/imsglobal/pox/IMSPOXRequest.java (100%) rename bbb-lti/{web-app => src/main/webapp}/fonts/glyphicons-halflings-regular.eot (100%) rename bbb-lti/{web-app => src/main/webapp}/fonts/glyphicons-halflings-regular.svg (100%) rename bbb-lti/{web-app => src/main/webapp}/fonts/glyphicons-halflings-regular.ttf (100%) rename bbb-lti/{web-app => src/main/webapp}/fonts/glyphicons-halflings-regular.woff (100%) rename bbb-lti/{web-app => src/main/webapp}/images/icon.ico (100%) rename bbb-lti/{web-app/WEB-INF => src/main/webapp}/tld/c.tld (100%) rename bbb-lti/{web-app/WEB-INF => src/main/webapp}/tld/fmt.tld (100%) rename bbb-lti/{web-app/WEB-INF => src/main/webapp}/tld/grails.tld (90%) rename bbb-lti/{web-app/WEB-INF => src/main/webapp}/tld/spring-form.tld (96%) rename bbb-lti/{web-app/WEB-INF => src/main/webapp}/tld/spring.tld (97%) rename bbb-lti/{test/unit => src/test/groovy/org}/BigbluebuttonServiceTests.groovy (100%) rename bbb-lti/{test/unit => src/test/groovy/org}/LtiServiceTests.groovy (100%) rename bbb-lti/{test/unit => src/test/groovy/org}/ToolControllerTests.groovy (100%) rename bbb-lti/{test/unit => src/test/groovy}/org/bigbluebutton/BigbluebuttonServiceSpec.groovy (100%) rename bbb-lti/{test/unit => src/test/groovy}/org/bigbluebutton/LtiServiceSpec.groovy (100%) rename bbb-lti/{test/unit => src/test/groovy}/org/bigbluebutton/ToolControllerSpec.groovy (100%) delete mode 100644 bbb-lti/web-app/WEB-INF/applicationContext.xml delete mode 100644 bbb-lti/web-app/WEB-INF/sitemesh.xml diff --git a/bbb-lti/.gitignore b/bbb-lti/.gitignore index b1bf7c47d2..267960ca1d 100644 --- a/bbb-lti/.gitignore +++ b/bbb-lti/.gitignore @@ -1 +1,13 @@ -.asscache \ No newline at end of file +Thumbs.db +.DS_Store +.gradle +build/ +out/ +.idea +*.iml +*.ipr +*.iws +.project +.settings +.classpath +.asscache diff --git a/bbb-lti/application.properties b/bbb-lti/application.properties deleted file mode 100644 index a00806dd9e..0000000000 --- a/bbb-lti/application.properties +++ /dev/null @@ -1,6 +0,0 @@ -#Grails Metadata file -#Fri Aug 19 19:12:11 UTC 2016 -app.grails.version=2.5.2 -app.name=lti -app.servlet.version=3.0 -app.version=0.4 diff --git a/bbb-lti/gradle.properties b/bbb-lti/gradle.properties new file mode 100644 index 0000000000..fed966ebe8 --- /dev/null +++ b/bbb-lti/gradle.properties @@ -0,0 +1,3 @@ +grailsVersion=3.3.10 +gormVersion=6.1.12.RELEASE +gradleWrapperVersion=3.5 diff --git a/bbb-lti/gradlew b/bbb-lti/gradlew new file mode 100644 index 0000000000..9d82f78915 --- /dev/null +++ b/bbb-lti/gradlew @@ -0,0 +1,160 @@ +#!/usr/bin/env bash + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn ( ) { + echo "$*" +} + +die ( ) { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; +esac + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules +function splitJvmOpts() { + JVM_OPTS=("$@") +} +eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS +JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" + +exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/bbb-lti/gradlew.bat b/bbb-lti/gradlew.bat new file mode 100644 index 0000000000..8a0b282aa6 --- /dev/null +++ b/bbb-lti/gradlew.bat @@ -0,0 +1,90 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windowz variants + +if not "%OS%" == "Windows_NT" goto win9xME_args +if "%@eval[2+2]" == "4" goto 4NT_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* +goto execute + +:4NT_args +@rem Get arguments from the 4NT Shell from JP Software +set CMD_LINE_ARGS=%$ + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/bbb-lti/grails-app/assets/javascripts/application.js b/bbb-lti/grails-app/assets/javascripts/application.js index aa2a2021ec..ca4dd7c8ce 100644 --- a/bbb-lti/grails-app/assets/javascripts/application.js +++ b/bbb-lti/grails-app/assets/javascripts/application.js @@ -1,20 +1,15 @@ -/* - BigBlueButton open source conferencing system - http://www.bigbluebutton.org/ +// This is a manifest file that'll be compiled into application.js. +// +// Any JavaScript file within this directory can be referenced here using a relative path. +// +// You're free to add application-wide JavaScript to this file, but it's generally better +// to create separate JavaScript files as needed. +// +//= require jquery-3.3.1.min +//= require bootstrap +//= require popper.min +//= require_self - Copyright (c) 2012 BigBlueButton Inc. and by respective authors (see below). - - This program is free software; you can redistribute it and/or modify it under the - terms of the GNU Lesser General Public License as published by the Free Software - Foundation; either version 3.0 of the License, or (at your option) any later - version. - - BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A - PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License along - with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. -*/ if (typeof jQuery !== 'undefined') { (function($) { $('#spinner').ajaxStart(function() { diff --git a/bbb-lti/grails-app/assets/stylesheets/application.css b/bbb-lti/grails-app/assets/stylesheets/application.css index e3b02f276d..1889054bc6 100644 --- a/bbb-lti/grails-app/assets/stylesheets/application.css +++ b/bbb-lti/grails-app/assets/stylesheets/application.css @@ -7,6 +7,8 @@ * You're free to add application-wide styles to this file and they'll appear at the top of the * compiled file, but it's generally better to create a new file per style scope. * +*= require bootstrap +*= require grails *= require main *= require mobile *= require_self diff --git a/bbb-lti/grails-app/assets/stylesheets/errors.css b/bbb-lti/grails-app/assets/stylesheets/errors.css index bdb58bcca8..1c616d8d94 100644 --- a/bbb-lti/grails-app/assets/stylesheets/errors.css +++ b/bbb-lti/grails-app/assets/stylesheets/errors.css @@ -1,109 +1,109 @@ h1, h2 { - margin: 10px 25px 5px; + margin: 10px 25px 5px; } h2 { - font-size: 1.1em; + font-size: 1.1em; } .filename { - font-style: italic; + font-style: italic; } .exceptionMessage { - margin: 10px; - border: 1px solid #000; - padding: 5px; - background-color: #E9E9E9; + margin: 10px; + border: 1px solid #000; + padding: 5px; + background-color: #E9E9E9; } .stack, .snippet { - margin: 0 25px 10px; + margin: 0 25px 10px; } .stack, .snippet { - border: 1px solid #ccc; - -mox-box-shadow: 0 0 2px rgba(0,0,0,0.2); - -webkit-box-shadow: 0 0 2px rgba(0,0,0,0.2); - box-shadow: 0 0 2px rgba(0,0,0,0.2); + border: 1px solid #ccc; + -mox-box-shadow: 0 0 2px rgba(0,0,0,0.2); + -webkit-box-shadow: 0 0 2px rgba(0,0,0,0.2); + box-shadow: 0 0 2px rgba(0,0,0,0.2); } /* error details */ .error-details { - border-top: 1px solid #FFAAAA; - -mox-box-shadow: 0 0 2px rgba(0,0,0,0.2); - -webkit-box-shadow: 0 0 2px rgba(0,0,0,0.2); - box-shadow: 0 0 2px rgba(0,0,0,0.2); - border-bottom: 1px solid #FFAAAA; - -mox-box-shadow: 0 0 2px rgba(0,0,0,0.2); - -webkit-box-shadow: 0 0 2px rgba(0,0,0,0.2); - box-shadow: 0 0 2px rgba(0,0,0,0.2); - background-color:#FFF3F3; - line-height: 1.5; - overflow: hidden; - padding: 5px; - padding-left:25px; + border-top: 1px solid #FFAAAA; + -mox-box-shadow: 0 0 2px rgba(0,0,0,0.2); + -webkit-box-shadow: 0 0 2px rgba(0,0,0,0.2); + box-shadow: 0 0 2px rgba(0,0,0,0.2); + border-bottom: 1px solid #FFAAAA; + -mox-box-shadow: 0 0 2px rgba(0,0,0,0.2); + -webkit-box-shadow: 0 0 2px rgba(0,0,0,0.2); + box-shadow: 0 0 2px rgba(0,0,0,0.2); + background-color:#FFF3F3; + line-height: 1.5; + overflow: hidden; + padding: 5px; + padding-left:25px; } .error-details dt { - clear: left; - float: left; - font-weight: bold; - margin-right: 5px; + clear: left; + float: left; + font-weight: bold; + margin-right: 5px; } .error-details dt:after { - content: ":"; + content: ":"; } .error-details dd { - display: block; + display: block; } /* stack trace */ .stack { - padding: 5px; - overflow: auto; - height: 150px; + padding: 5px; + overflow: auto; + height: 150px; } /* code snippet */ .snippet { - background-color: #fff; - font-family: monospace; + background-color: #fff; + font-family: monospace; } .snippet .line { - display: block; + display: block; } .snippet .lineNumber { - background-color: #ddd; - color: #999; - display: inline-block; - margin-right: 5px; - padding: 0 3px; - text-align: right; - width: 3em; + background-color: #ddd; + color: #999; + display: inline-block; + margin-right: 5px; + padding: 0 3px; + text-align: right; + width: 3em; } .snippet .error { - background-color: #fff3f3; - font-weight: bold; + background-color: #fff3f3; + font-weight: bold; } .snippet .error .lineNumber { - background-color: #faa; - color: #333; - font-weight: bold; + background-color: #faa; + color: #333; + font-weight: bold; } .snippet .line:first-child .lineNumber { - padding-top: 5px; + padding-top: 5px; } .snippet .line:last-child .lineNumber { - padding-bottom: 5px; + padding-bottom: 5px; } \ No newline at end of file diff --git a/bbb-lti/grails-app/assets/stylesheets/main.css b/bbb-lti/grails-app/assets/stylesheets/main.css index a55945d159..93f1ec157b 100644 --- a/bbb-lti/grails-app/assets/stylesheets/main.css +++ b/bbb-lti/grails-app/assets/stylesheets/main.css @@ -1,596 +1,594 @@ /* FONT STACK */ body, input, select, textarea { - font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; + font-family: "Open Sans", "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; } h1, h2, h3, h4, h5, h6 { - line-height: 1.1; + line-height: 1.1; } /* BASE LAYOUT */ html { - background-color: #ddd; - background-image: -moz-linear-gradient(center top, #aaa, #ddd); - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #aaa), color-stop(1, #ddd)); - background-image: linear-gradient(top, #aaa, #ddd); - filter: progid:DXImageTransform.Microsoft.gradient(startColorStr = '#aaaaaa', EndColorStr = '#dddddd'); - background-repeat: no-repeat; - height: 100%; - /* change the box model to exclude the padding from the calculation of 100% height (IE8+) */ - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; + background-color: #ddd; + background-image: -moz-linear-gradient(center top, #aaa, #ddd); + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #aaa), color-stop(1, #ddd)); + background-image: linear-gradient(to bottom, #aaa, #ddd); + filter: progid:DXImageTransform.Microsoft.gradient(startColorStr = '#aaaaaa', EndColorStr = '#dddddd'); + background-repeat: no-repeat; + height: 100%; + /* change the box model to exclude the padding from the calculation of 100% height (IE8+) */ + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; } html.no-cssgradients { - background-color: #aaa; -} - -.ie6 html { - height: 100%; + background-color: #aaa; } html * { - margin: 0; + margin: 0; } body { - background: #ffffff; - color: #333333; - margin: 0 auto; - max-width: 960px; - overflow-x: hidden; /* prevents box-shadow causing a horizontal scrollbar in firefox when viewport < 960px wide */ - -moz-box-shadow: 0 0 0.3em #255b17; - -webkit-box-shadow: 0 0 0.3em #255b17; - box-shadow: 0 0 0.3em #255b17; + background-color: #F5F5F5; + color: #333333; + overflow-x: hidden; /* prevents box-shadow causing a horizontal scrollbar in firefox when viewport < 960px wide */ + -moz-box-shadow: 0 0 0.3em #424649; + -webkit-box-shadow: 0 0 0.3em #424649; + box-shadow: 0 0 0.3em #424649; } #grailsLogo { - background-color: #abbf78; -} - -/* replace with .no-boxshadow body if you have modernizr available */ -.ie6 body, -.ie7 body, -.ie8 body { - border-color: #255b17; - border-style: solid; - border-width: 0 1px; -} - -.ie6 body { - height: 100%; -} - -a:link, a:visited, a:hover { - color: #48802c; + background-color: #feb672; } a:hover, a:active { - outline: none; /* prevents outline in webkit on active links but retains it for tab focus */ + outline: none; /* prevents outline in webkit on active links but retains it for tab focus */ } -h1 { - color: #48802c; - font-weight: normal; - font-size: 1.25em; - margin: 0.8em 0 0.3em 0; +h1, h2, h3 { + font-weight: normal; + font-size: 1.25em; + margin: 0.8em 0 0.3em 0; } ul { - padding: 0; + padding: 0; } img { - border: 0; + border: 0; } /* GENERAL */ #grailsLogo a { - display: inline-block; - margin: 1em; + display: inline-block; + margin: 1em; } .content { } .content h1 { - border-bottom: 1px solid #CCCCCC; - margin: 0.8em 1em 0.3em; - padding: 0 0.25em; + border-bottom: 1px solid #CCCCCC; + margin: 0.8em 1em 0.3em; + padding: 0 0.25em; } .scaffold-list h1 { - border: none; + border: none; +} + +.footer img { + height: 80px; + margin-right: 25px; + margin-bottom: 15px; + clear: bottom; +} + +.footer strong a { + color: white; + text-decoration: none; + font-size: 1.1rem; } .footer { - background: #abbf78; - color: #000; - clear: both; - font-size: 0.8em; - margin-top: 1.5em; - padding: 1em; - min-height: 1em; + background: #424649; + color: #ffffff; + clear: both; + font-size: 1em; + margin-top: 1.5em; + padding: 1em; + padding-bottom: 2em; + min-height: 1em; } .footer a { - color: #255b17; + color: #feb672; } .spinner { - background: url(../images/spinner.gif) 50% 50% no-repeat transparent; - height: 16px; - width: 16px; + background: url(../images/spinner.gif) 50% 50% no-repeat transparent; + height: 16px; + width: 16px; padding: 0.5em; position: absolute; right: 0; - top: 0; - text-indent: -9999px; + top: 0; + text-indent: -9999px; } /* NAVIGATION MENU */ .nav { - background-color: #efefef; - padding: 0.5em 0.75em; - -moz-box-shadow: 0 0 3px 1px #aaaaaa; - -webkit-box-shadow: 0 0 3px 1px #aaaaaa; - box-shadow: 0 0 3px 1px #aaaaaa; - zoom: 1; + zoom: 1; } .nav ul { - overflow: hidden; - padding-left: 0; - zoom: 1; + overflow: hidden; + padding-left: 0; + zoom: 1; } .nav li { - display: block; - float: left; - list-style-type: none; - margin-right: 0.5em; - padding: 0; + display: block; + float: left; + list-style-type: none; + margin-right: 0.5em; + padding: 0; } .nav a { - color: #666666; - display: block; - padding: 0.25em 0.7em; - text-decoration: none; - -moz-border-radius: 0.3em; - -webkit-border-radius: 0.3em; - border-radius: 0.3em; + color: #666666; + display: block; + padding: 0.25em 0.7em; + text-decoration: none; + -moz-border-radius: 0.3em; + -webkit-border-radius: 0.3em; + border-radius: 0.3em; +} + +.nav li.dropdown-item a { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; } .nav a:active, .nav a:visited { - color: #666666; + color: #666666; } .nav a:focus, .nav a:hover { - background-color: #999999; - color: #ffffff; - outline: none; - text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.8); + background-color: #999999; + color: #ffffff; + outline: none; + text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.8); } .no-borderradius .nav a:focus, .no-borderradius .nav a:hover { - background-color: transparent; - color: #444444; - text-decoration: underline; + background-color: transparent; + color: #444444; + text-decoration: underline; } .nav a.home, .nav a.list, .nav a.create { - background-position: 0.7em center; - background-repeat: no-repeat; - text-indent: 25px; + background-position: 0.7em center; + background-repeat: no-repeat; + text-indent: 25px; } .nav a.home { - background-image: url(../images/skin/house.png); + background-image: url(../images/skin/house.png); } .nav a.list { - background-image: url(../images/skin/database_table.png); + background-image: url(../images/skin/database_table.png); } .nav a.create { - background-image: url(../images/skin/database_add.png); + background-image: url(../images/skin/database_add.png); +} + +.nav li.dropdown.show ul.dropdown-menu { + background-color: #424649; } /* CREATE/EDIT FORMS AND SHOW PAGES */ fieldset, .property-list { - margin: 0.6em 1.25em 0 1.25em; - padding: 0.3em 1.8em 1.25em; - position: relative; - zoom: 1; - border: none; + margin: 0.6em 1.25em 0 1.25em; + padding: 0.3em 1.8em 1.25em; + position: relative; + zoom: 1; + border: none; } .property-list .fieldcontain { - list-style: none; - overflow: hidden; - zoom: 1; + list-style: none; + overflow: hidden; + zoom: 1; } .fieldcontain { - margin-top: 1em; + margin-top: 1em; } .fieldcontain label, .fieldcontain .property-label { - color: #666666; - text-align: right; - width: 25%; + color: #666666; + text-align: right; + width: 25%; } .fieldcontain .property-label { - float: left; + float: left; } .fieldcontain .property-value { - display: block; - margin-left: 27%; + display: block; + margin-left: 27%; } label { - cursor: pointer; - display: inline-block; - margin: 0 0.25em 0 0; + cursor: pointer; + display: inline-block; + margin: 0 0.25em 0 0; } input, select, textarea { - background-color: #fcfcfc; - border: 1px solid #cccccc; - font-size: 1em; - padding: 0.2em 0.4em; + background-color: #fcfcfc; + border: 1px solid #cccccc; + font-size: 1em; + padding: 0.2em 0.4em; } select { - padding: 0.2em 0.2em 0.2em 0; + padding: 0.2em 0.2em 0.2em 0; } select[multiple] { - vertical-align: top; + vertical-align: top; } textarea { - width: 250px; - height: 150px; - overflow: auto; /* IE always renders vertical scrollbar without this */ - vertical-align: top; + width: 250px; + height: 150px; + overflow: auto; /* IE always renders vertical scrollbar without this */ + vertical-align: top; } input[type=checkbox], input[type=radio] { - background-color: transparent; - border: 0; - padding: 0; + background-color: transparent; + border: 0; + padding: 0; } input:focus, select:focus, textarea:focus { - background-color: #ffffff; - border: 1px solid #eeeeee; - outline: 0; - -moz-box-shadow: 0 0 0.5em #ffffff; - -webkit-box-shadow: 0 0 0.5em #ffffff; - box-shadow: 0 0 0.5em #ffffff; + background-color: #ffffff; + border: 1px solid #eeeeee; + outline: 0; + -moz-box-shadow: 0 0 0.5em #ffffff; + -webkit-box-shadow: 0 0 0.5em #ffffff; + box-shadow: 0 0 0.5em #ffffff; } .required-indicator { - color: #48802C; - display: inline-block; - font-weight: bold; - margin-left: 0.3em; - position: relative; - top: 0.1em; + color: #cc0000; + display: inline-block; + font-weight: bold; + margin-left: 0.3em; + position: relative; + top: 0.1em; } ul.one-to-many { - display: inline-block; - list-style-position: inside; - vertical-align: top; -} - -.ie6 ul.one-to-many, .ie7 ul.one-to-many { - display: inline; - zoom: 1; + display: inline-block; + list-style-position: inside; + vertical-align: top; } ul.one-to-many li.add { - list-style-type: none; + list-style-type: none; } /* EMBEDDED PROPERTIES */ fieldset.embedded { - background-color: transparent; - border: 1px solid #CCCCCC; - margin-left: 0; - margin-right: 0; - padding-left: 0; - padding-right: 0; - -moz-box-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; + background-color: transparent; + border: 1px solid #CCCCCC; + margin-left: 0; + margin-right: 0; + padding-left: 0; + padding-right: 0; + -moz-box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; } fieldset.embedded legend { - margin: 0 1em; + margin: 0 1em; } /* MESSAGES AND ERRORS */ .errors, .message { - font-size: 0.8em; - line-height: 2; - margin: 1em 2em; - padding: 0.25em; + font-size: 0.8em; + line-height: 2; + margin: 1em 2em; + padding: 0.25em; } .message { - background: #f3f3ff; - border: 1px solid #b2d1ff; - color: #006dba; - -moz-box-shadow: 0 0 0.25em #b2d1ff; - -webkit-box-shadow: 0 0 0.25em #b2d1ff; - box-shadow: 0 0 0.25em #b2d1ff; + background: #f3f3ff; + border: 1px solid #b2d1ff; + color: #006dba; + -moz-box-shadow: 0 0 0.25em #b2d1ff; + -webkit-box-shadow: 0 0 0.25em #b2d1ff; + box-shadow: 0 0 0.25em #b2d1ff; } .errors { - background: #fff3f3; - border: 1px solid #ffaaaa; - color: #cc0000; - -moz-box-shadow: 0 0 0.25em #ff8888; - -webkit-box-shadow: 0 0 0.25em #ff8888; - box-shadow: 0 0 0.25em #ff8888; + background: #fff3f3; + border: 1px solid #ffaaaa; + color: #cc0000; + -moz-box-shadow: 0 0 0.25em #ff8888; + -webkit-box-shadow: 0 0 0.25em #ff8888; + box-shadow: 0 0 0.25em #ff8888; } .errors ul, .message { - padding: 0; + padding: 0; } .errors li { - list-style: none; - background: transparent url(../images/skin/exclamation.png) 0.5em 50% no-repeat; - text-indent: 2.2em; + list-style: none; + background: transparent url(../images/skin/exclamation.png) 0.5em 50% no-repeat; + text-indent: 2.2em; } .message { - background: transparent url(../images/skin/information.png) 0.5em 50% no-repeat; - text-indent: 2.2em; + background: transparent url(../images/skin/information.png) 0.5em 50% no-repeat; + text-indent: 2.2em; } /* form fields with errors */ .error input, .error select, .error textarea { - background: #fff3f3; - border-color: #ffaaaa; - color: #cc0000; + background: #fff3f3; + border-color: #ffaaaa; + color: #cc0000; } .error input:focus, .error select:focus, .error textarea:focus { - -moz-box-shadow: 0 0 0.5em #ffaaaa; - -webkit-box-shadow: 0 0 0.5em #ffaaaa; - box-shadow: 0 0 0.5em #ffaaaa; + -moz-box-shadow: 0 0 0.5em #ffaaaa; + -webkit-box-shadow: 0 0 0.5em #ffaaaa; + box-shadow: 0 0 0.5em #ffaaaa; } /* same effects for browsers that support HTML5 client-side validation (these have to be specified separately or IE will ignore the entire rule) */ input:invalid, select:invalid, textarea:invalid { - background: #fff3f3; - border-color: #ffaaaa; - color: #cc0000; + background: #fff3f3; + border-color: #ffaaaa; + color: #cc0000; } input:invalid:focus, select:invalid:focus, textarea:invalid:focus { - -moz-box-shadow: 0 0 0.5em #ffaaaa; - -webkit-box-shadow: 0 0 0.5em #ffaaaa; - box-shadow: 0 0 0.5em #ffaaaa; + -moz-box-shadow: 0 0 0.5em #ffaaaa; + -webkit-box-shadow: 0 0 0.5em #ffaaaa; + box-shadow: 0 0 0.5em #ffaaaa; } /* TABLES */ table { - border-top: 1px solid #DFDFDF; - border-collapse: collapse; - width: 100%; - margin-bottom: 1em; + border-top: 1px solid #DFDFDF; + border-collapse: collapse; + width: 100%; + margin-bottom: 1em; } tr { - border: 0; + border: 0; } tr>td:first-child, tr>th:first-child { - padding-left: 1.25em; + padding-left: 1.25em; } tr>td:last-child, tr>th:last-child { - padding-right: 1.25em; + padding-right: 1.25em; } td, th { - line-height: 1.5em; - padding: 0.5em 0.6em; - text-align: left; - vertical-align: top; + line-height: 1.5em; + padding: 0.5em 0.6em; + text-align: left; + vertical-align: top; } th { - background-color: #efefef; - background-image: -moz-linear-gradient(top, #ffffff, #eaeaea); - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #ffffff), color-stop(1, #eaeaea)); - filter: progid:DXImageTransform.Microsoft.gradient(startColorStr = '#ffffff', EndColorStr = '#eaeaea'); - -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffffff', EndColorStr='#eaeaea')"; - color: #666666; - font-weight: bold; - line-height: 1.7em; - padding: 0.2em 0.6em; + background-color: #efefef; + background-image: -moz-linear-gradient(top, #ffffff, #eaeaea); + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #ffffff), color-stop(1, #eaeaea)); + filter: progid:DXImageTransform.Microsoft.gradient(startColorStr = '#ffffff', EndColorStr = '#eaeaea'); + -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffffff', EndColorStr='#eaeaea')"; + color: #666666; + font-weight: bold; + line-height: 1.7em; + padding: 0.2em 0.6em; } thead th { - white-space: nowrap; + white-space: nowrap; } th a { - display: block; - text-decoration: none; + display: block; + text-decoration: none; } th a:link, th a:visited { - color: #666666; + color: #666666; } th a:hover, th a:focus { - color: #333333; + color: #333333; } th.sortable a { - background-position: right; - background-repeat: no-repeat; - padding-right: 1.1em; + background-position: right; + background-repeat: no-repeat; + padding-right: 1.1em; } th.asc a { - background-image: url(../images/skin/sorted_asc.gif); + background-image: url(../images/skin/sorted_asc.gif); } th.desc a { - background-image: url(../images/skin/sorted_desc.gif); + background-image: url(../images/skin/sorted_desc.gif); } .odd { - background: #f7f7f7; + background: #f7f7f7; } .even { - background: #ffffff; + background: #ffffff; } th:hover, tr:hover { - background: #E1F2B6; + background: #f5f5f5; } /* PAGINATION */ .pagination { - border-top: 0; - margin: 0; - padding: 0.3em 0.2em; - text-align: center; - -moz-box-shadow: 0 0 3px 1px #AAAAAA; - -webkit-box-shadow: 0 0 3px 1px #AAAAAA; - box-shadow: 0 0 3px 1px #AAAAAA; - background-color: #EFEFEF; + border-top: 0; + margin: 0.8em 1em 0.3em; + padding: 0.3em 0.2em; + text-align: center; + -moz-box-shadow: 0 0 3px 1px #AAAAAA; + -webkit-box-shadow: 0 0 3px 1px #AAAAAA; + box-shadow: 0 0 3px 1px #AAAAAA; + background-color: #EFEFEF; } .pagination a, .pagination .currentStep { - color: #666666; - display: inline-block; - margin: 0 0.1em; - padding: 0.25em 0.7em; - text-decoration: none; - -moz-border-radius: 0.3em; - -webkit-border-radius: 0.3em; - border-radius: 0.3em; + color: #666666; + display: inline-block; + margin: 0 0.1em; + padding: 0.25em 0.7em; + text-decoration: none; + -moz-border-radius: 0.3em; + -webkit-border-radius: 0.3em; + border-radius: 0.3em; } .pagination a:hover, .pagination a:focus, .pagination .currentStep { - background-color: #999999; - color: #ffffff; - outline: none; - text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.8); + background-color: #999999; + color: #ffffff; + outline: none; + text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.8); } .no-borderradius .pagination a:hover, .no-borderradius .pagination a:focus, .no-borderradius .pagination .currentStep { - background-color: transparent; - color: #444444; - text-decoration: underline; + background-color: transparent; + color: #444444; + text-decoration: underline; } /* ACTION BUTTONS */ .buttons { - background-color: #efefef; - overflow: hidden; - padding: 0.3em; - -moz-box-shadow: 0 0 3px 1px #aaaaaa; - -webkit-box-shadow: 0 0 3px 1px #aaaaaa; - box-shadow: 0 0 3px 1px #aaaaaa; - margin: 0.1em 0 0 0; - border: none; + background-color: #efefef; + overflow: hidden; + padding: 0.3em; + -moz-box-shadow: 0 0 3px 1px #aaaaaa; + -webkit-box-shadow: 0 0 3px 1px #aaaaaa; + box-shadow: 0 0 3px 1px #aaaaaa; + margin: 0.1em 0 0 0; + border: none; } .buttons input, .buttons a { - background-color: transparent; - border: 0; - color: #666666; - cursor: pointer; - display: inline-block; - margin: 0 0.25em 0; - overflow: visible; - padding: 0.25em 0.7em; - text-decoration: none; + background-color: transparent; + border: 0; + color: #666666; + cursor: pointer; + display: inline-block; + margin: 0 0.25em 0; + overflow: visible; + padding: 0.25em 0.7em; + text-decoration: none; - -moz-border-radius: 0.3em; - -webkit-border-radius: 0.3em; - border-radius: 0.3em; + -moz-border-radius: 0.3em; + -webkit-border-radius: 0.3em; + border-radius: 0.3em; } .buttons input:hover, .buttons input:focus, .buttons a:hover, .buttons a:focus { - background-color: #999999; - color: #ffffff; - outline: none; - text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.8); - -moz-box-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; + background-color: #999999; + color: #ffffff; + outline: none; + text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.8); + -moz-box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; } .no-borderradius .buttons input:hover, .no-borderradius .buttons input:focus, .no-borderradius .buttons a:hover, .no-borderradius .buttons a:focus { - background-color: transparent; - color: #444444; - text-decoration: underline; + background-color: transparent; + color: #444444; + text-decoration: underline; } .buttons .delete, .buttons .edit, .buttons .save { - background-position: 0.7em center; - background-repeat: no-repeat; - text-indent: 25px; -} - -.ie6 .buttons input.delete, .ie6 .buttons input.edit, .ie6 .buttons input.save, -.ie7 .buttons input.delete, .ie7 .buttons input.edit, .ie7 .buttons input.save { - padding-left: 36px; + background-position: 0.7em center; + background-repeat: no-repeat; + text-indent: 25px; } .buttons .delete { - background-image: url(../images/skin/database_delete.png); + background-image: url(../images/skin/database_delete.png); } .buttons .edit { - background-image: url(../images/skin/database_edit.png); + background-image: url(../images/skin/database_edit.png); } .buttons .save { - background-image: url(../images/skin/database_save.png); + background-image: url(../images/skin/database_save.png); } a.skip { - position: absolute; - left: -9999px; + position: absolute; + left: -9999px; +} + +.grails-logo-container { + background: #7c7c7c no-repeat 50% 30%; + margin-bottom: 20px; + color: white; + height:300px; + text-align:center; +} + +img.grails-logo { + height:340px; + margin-top:-10px; } diff --git a/bbb-lti/grails-app/assets/stylesheets/mobile.css b/bbb-lti/grails-app/assets/stylesheets/mobile.css index 167f50221e..552abd91b5 100644 --- a/bbb-lti/grails-app/assets/stylesheets/mobile.css +++ b/bbb-lti/grails-app/assets/stylesheets/mobile.css @@ -1,82 +1,82 @@ /* Styles for mobile devices */ @media screen and (max-width: 480px) { - .nav { - padding: 0.5em; - } + .nav { + padding: 0.5em; + } - .nav li { - margin: 0 0.5em 0 0; - padding: 0.25em; - } + .nav li { + margin: 0 0.5em 0 0; + padding: 0.25em; + } - /* Hide individual steps in pagination, just have next & previous */ - .pagination .step, .pagination .currentStep { - display: none; - } + /* Hide individual steps in pagination, just have next & previous */ + .pagination .step, .pagination .currentStep { + display: none; + } - .pagination .prevLink { - float: left; - } + .pagination .prevLink { + float: left; + } - .pagination .nextLink { - float: right; - } + .pagination .nextLink { + float: right; + } - /* pagination needs to wrap around floated buttons */ - .pagination { - overflow: hidden; - } + /* pagination needs to wrap around floated buttons */ + .pagination { + overflow: hidden; + } - /* slightly smaller margin around content body */ - fieldset, - .property-list { - padding: 0.3em 1em 1em; - } + /* slightly smaller margin around content body */ + fieldset, + .property-list { + padding: 0.3em 1em 1em; + } - input, textarea { - width: 100%; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - -ms-box-sizing: border-box; - box-sizing: border-box; - } + input, textarea { + width: 100%; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + } - select, input[type=checkbox], input[type=radio], input[type=submit], input[type=button], input[type=reset] { - width: auto; - } + select, input[type=checkbox], input[type=radio], input[type=submit], input[type=button], input[type=reset] { + width: auto; + } - /* hide all but the first column of list tables */ - .scaffold-list td:not(:first-child), - .scaffold-list th:not(:first-child) { - display: none; - } + /* hide all but the first column of list tables */ + .scaffold-list td:not(:first-child), + .scaffold-list th:not(:first-child) { + display: none; + } - .scaffold-list thead th { - text-align: center; - } + .scaffold-list thead th { + text-align: center; + } - /* stack form elements */ - .fieldcontain { - margin-top: 0.6em; - } + /* stack form elements */ + .fieldcontain { + margin-top: 0.6em; + } - .fieldcontain label, - .fieldcontain .property-label, - .fieldcontain .property-value { - display: block; - float: none; - margin: 0 0 0.25em 0; - text-align: left; - width: auto; - } + .fieldcontain label, + .fieldcontain .property-label, + .fieldcontain .property-value { + display: block; + float: none; + margin: 0 0 0.25em 0; + text-align: left; + width: auto; + } - .errors ul, - .message p { - margin: 0.5em; - } + .errors ul, + .message p { + margin: 0.5em; + } - .error ul { - margin-left: 0; - } + .error ul { + margin-left: 0; + } } diff --git a/bbb-lti/grails-app/conf/BuildConfig.groovy b/bbb-lti/grails-app/conf/BuildConfig.groovy deleted file mode 100644 index fa0612b02d..0000000000 --- a/bbb-lti/grails-app/conf/BuildConfig.groovy +++ /dev/null @@ -1,92 +0,0 @@ -/* - BigBlueButton open source conferencing system - http://www.bigbluebutton.org/ - - Copyright (c) 2012 BigBlueButton Inc. and by respective authors (see below). - - This program is free software; you can redistribute it and/or modify it under the - terms of the GNU Lesser General Public License as published by the Free Software - Foundation; either version 3.0 of the License, or (at your option) any later - version. - - BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A - PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License along - with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. -*/ - -grails.servlet.version = "3.0" // Change depending on target container compliance (2.5 or 3.0) -grails.project.class.dir = "target/classes" -grails.project.test.class.dir = "target/test-classes" -grails.project.test.reports.dir = "target/test-reports" -grails.project.work.dir = "target/work" -grails.project.target.level = 1.6 -grails.project.source.level = 1.6 -//grails.project.war.file = "target/${appName}-${appVersion}.war" - -grails.project.fork = [ - // configure settings for compilation JVM, note that if you alter the Groovy version forked compilation is required - // compile: [maxMemory: 256, minMemory: 64, debug: false, maxPerm: 256, daemon:true], - - // configure settings for the test-app JVM, uses the daemon by default - test: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, daemon:true], - // configure settings for the run-app JVM - run: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, forkReserve:false], - // configure settings for the run-war JVM - war: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, forkReserve:false], - // configure settings for the Console UI JVM - console: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256] -] - -grails.project.dependency.resolver = "maven" // or ivy -grails.project.dependency.resolution = { - // inherit Grails' default dependencies - inherits("global") { - // specify dependency exclusions here; for example, uncomment this to disable ehcache: - // excludes 'ehcache' - } - log "error" // log level of Ivy resolver, either 'error', 'warn', 'info', 'debug' or 'verbose' - checksums true // Whether to verify checksums on resolve - legacyResolve false // whether to do a secondary resolve on plugin installation, not advised and here for backwards compatibility - - repositories { - inherits true // Whether to inherit repository definitions from plugins - - grailsPlugins() - grailsHome() - mavenLocal() - grailsCentral() - mavenCentral() - // uncomment these (or add new ones) to enable remote dependency resolution from public Maven repositories - mavenRepo "https://jitpack.io" - mavenRepo "http://repository.codehaus.org" - mavenRepo "http://download.java.net/maven/2/" - mavenRepo "http://repository.jboss.com/maven2/" - } - - dependencies { - compile 'org.json:json:20171018' - compile 'com.github.blindsidenetworks:oauth:master-SNAPSHOT' - // specify dependencies here under either 'build', 'compile', 'runtime', 'test' or 'provided' scopes e.g. - // runtime 'mysql:mysql-connector-java:5.1.29' - // runtime 'org.postgresql:postgresql:9.3-1101-jdbc41' - test "org.grails:grails-datastore-test-support:1.0.2-grails-2.4" - } - - plugins { - // plugins for the build system only - build ":tomcat:7.0.55.3" // or ":tomcat:8.0.22" - - // plugins for the compile step - compile ":scaffolding:2.1.2" - compile ':cache:1.1.8' - // asset-pipeline 2.0+ requires Java 7, use version 1.9.x with Java 6 - compile ":asset-pipeline:2.5.7" - - // plugins needed at runtime but not for compilation - runtime ":database-migration:1.4.0" - runtime ":jquery:1.11.1" - runtime ':twitter-bootstrap:3.3.5' - } -} diff --git a/bbb-lti/grails-app/conf/DataSource.groovy b/bbb-lti/grails-app/conf/DataSource.groovy deleted file mode 100644 index 402913267b..0000000000 --- a/bbb-lti/grails-app/conf/DataSource.groovy +++ /dev/null @@ -1,17 +0,0 @@ -/* - BigBlueButton open source conferencing system - http://www.bigbluebutton.org/ - - Copyright (c) 2012 BigBlueButton Inc. and by respective authors (see below). - - This program is free software; you can redistribute it and/or modify it under the - terms of the GNU Lesser General Public License as published by the Free Software - Foundation; either version 3.0 of the License, or (at your option) any later - version. - - BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A - PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License along - with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. -*/ diff --git a/bbb-lti/grails-app/conf/Config.groovy b/bbb-lti/grails-app/conf/application.groovy similarity index 60% rename from bbb-lti/grails-app/conf/Config.groovy rename to bbb-lti/grails-app/conf/application.groovy index 966ea2329e..2a57a2e090 100644 --- a/bbb-lti/grails-app/conf/Config.groovy +++ b/bbb-lti/grails-app/conf/application.groovy @@ -21,36 +21,39 @@ // in the classpath in ConfigSlurper format grails.config.locations = [ "classpath:${appName}-config.properties", - "classpath:${appName}-config.groovy", - "file:${userHome}/.grails/${appName}-config.properties", - "file:${userHome}/.grails/${appName}-config.groovy"] + "classpath:${appName}-config.groovy", + "file:${userHome}/.grails/${appName}-config.properties", + "file:${userHome}/.grails/${appName}-config.groovy"] // if (System.properties["${appName}.config.location"]) { // grails.config.locations << "file:" + System.properties["${appName}.config.location"] // } +grails.config.locations = [ "classpath:lti-config.properties"] grails.project.groupId = appName // change this to alter the default package name and Maven publishing destination // The ACCEPT header will not be used for content negotiation for user agents containing the following strings (defaults to the 4 major rendering engines) grails.mime.disable.accept.header.userAgents = ['Gecko', 'WebKit', 'Presto', 'Trident'] grails.mime.types = [ // the first one is the default format - all: '*/*', // 'all' maps to '*' or the first available format in withFormat - atom: 'application/atom+xml', - css: 'text/css', - csv: 'text/csv', - form: 'application/x-www-form-urlencoded', - html: ['text/html','application/xhtml+xml'], - js: 'text/javascript', - json: ['application/json', 'text/json'], - multipartForm: 'multipart/form-data', - rss: 'application/rss+xml', - text: 'text/plain', - hal: ['application/hal+json','application/hal+xml'], - xml: ['text/xml', 'application/xml'] + all: '*/*', // 'all' maps to '*' or the first available format in withFormat + atom: 'application/atom+xml', + css: 'text/css', + csv: 'text/csv', + form: 'application/x-www-form-urlencoded', + html: ['text/html','application/xhtml+xml'], + js: 'text/javascript', + json: ['application/json', 'text/json'], + multipartForm: 'multipart/form-data', + rss: 'application/rss+xml', + text: 'text/plain', + hal: ['application/hal+json','application/hal+xml'], + xml: ['text/xml', 'application/xml'] ] // URL Mapping Cache Max Size, defaults to 5000 //grails.urlmapping.cache.maxsize = 1000 +// What URL patterns should be processed by the resources plugin +grails.resources.adhoc.patterns = ['/images/*', '/css/*', '/js/*', '/plugins/*'] // Legacy setting for codec used to encode data with ${} grails.views.default.codec = "html" @@ -77,7 +80,6 @@ grails { } } - grails.converters.encoding = "UTF-8" // scaffolding templates configuration grails.scaffolding.templates.domainSuffix = 'Instance' @@ -97,12 +99,6 @@ grails.exceptionresolver.params.exclude = ['password'] // configure auto-caching of queries by default (if false you can cache individual queries with 'cache: true') grails.hibernate.cache.queries = false -// configure passing transaction's read-only attribute to Hibernate session, queries and criterias -// set "singleSession = false" OSIV mode in hibernate configuration after enabling -grails.hibernate.pass.readonly = false -// configure passing read-only to OSIV session by default, requires "singleSession = false" OSIV mode -grails.hibernate.osiv.readonly = false - // Enable hot reloading for production environments grails.gsp.enable.reload=true @@ -114,25 +110,3 @@ environments { grails.logging.jul.usebridge = false } } - -// log4j configuration -log4j.main = { - appenders { - rollingFile name:"logfile", maxFileSize:1000000, file:"/var/log/bigbluebutton/bbb-lti.log", layout:pattern(conversionPattern: '%d{[dd.MM.yy HH:mm:ss.SSS]} %-5p %c %x - %m%n') - console name:'console', layout:pattern(conversionPattern: '%d{[dd.MM.yy HH:mm:ss.SSS]} %-5p %c %x - %m%n') - 'null' name:'stacktrace' - } - debug logfile:"grails.app" - - error 'org.codehaus.groovy.grails.web.servlet', // controllers - 'org.codehaus.groovy.grails.web.pages', // GSP - 'org.codehaus.groovy.grails.web.sitemesh', // layouts - 'org.codehaus.groovy.grails.web.mapping.filter', // URL mapping - 'org.codehaus.groovy.grails.web.mapping', // URL mapping - 'org.codehaus.groovy.grails.commons', // core / classloading - 'org.codehaus.groovy.grails.plugins', // plugins - 'org.codehaus.groovy.grails.orm.hibernate', // hibernate integration - 'org.springframework', - 'org.hibernate', - 'net.sf.ehcache.hibernate' -} diff --git a/bbb-lti/grails-app/conf/logback.xml b/bbb-lti/grails-app/conf/logback.xml new file mode 100644 index 0000000000..afbd1bbac1 --- /dev/null +++ b/bbb-lti/grails-app/conf/logback.xml @@ -0,0 +1,42 @@ +<?xml version="1.0" encoding="UTF-8"?> +<configuration> + <appender name="STDOUT" + class="ch.qos.logback.core.ConsoleAppender"> + <layout class="ch.qos.logback.classic.PatternLayout"> + <Pattern>%d{"yyyy-MM-dd'T'HH:mm:ss.SSSXXX"} %-5level %logger{35} - %msg%n</Pattern> + </layout> + </appender> + + <appender name="FILE" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <File>logs/bbb-web.log</File> + <rollingPolicy + class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <FileNamePattern>/var/log/bigbluebutton/bbb-lit.%d{yyyy-MM-dd}.log + </FileNamePattern> + <!-- keep 14 days worth of history --> + <MaxHistory>14</MaxHistory> + </rollingPolicy> + <layout class="ch.qos.logback.classic.PatternLayout"> + <Pattern>%d{"yyyy-MM-dd'T'HH:mm:ss.SSSXXX"} %-5level %logger{35} - %msg%n</Pattern> + </layout> + </appender> + + <logger name="org.bigbluebutton" level="DEBUG" /> + + <logger name="grails.app.controllers" level="DEBUG" /> + <logger name="grails.app.services" level="DEBUG" /> + + <logger name="org.grails.web.servlet" level="ERROR" /> + <logger name="org.grails.web.pages" level="ERROR" /> + <logger name="org.grails.web.sitemesh" level="ERROR" /> + <logger name="org.grails.web.mapping.filter" level="ERROR" /> + <logger name="org.grails.web.mapping" level="ERROR" /> + <logger name="org.grails.commons" level="ERROR" /> + <logger name="org.springframework" level="ERROR" /> + + <root level="ERROR"> + <appender-ref ref="STDOUT" /> + <appender-ref ref="FILE" /> + </root> +</configuration> diff --git a/bbb-lti/grails-app/conf/UrlMappings.groovy b/bbb-lti/grails-app/controllers/org/bigbluebutton/lti/UrlMappings.groovy similarity index 76% rename from bbb-lti/grails-app/conf/UrlMappings.groovy rename to bbb-lti/grails-app/controllers/org/bigbluebutton/lti/UrlMappings.groovy index 6c0b6ad1c2..c4292d9c7f 100644 --- a/bbb-lti/grails-app/conf/UrlMappings.groovy +++ b/bbb-lti/grails-app/controllers/org/bigbluebutton/lti/UrlMappings.groovy @@ -1,30 +1,33 @@ -/* - BigBlueButton open source conferencing system - http://www.bigbluebutton.org/ - - Copyright (c) 2012 BigBlueButton Inc. and by respective authors (see below). - - This program is free software; you can redistribute it and/or modify it under the - terms of the GNU Lesser General Public License as published by the Free Software - Foundation; either version 3.0 of the License, or (at your option) any later - version. - - BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A - PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License along - with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. -*/ -class UrlMappings { - - static mappings = { - "/$controller/$action?/$id?(.$format)?"{ - constraints { - // apply constraints here - } - } - - "/"(controller: "tool") - "500"(view:'/error') - } -} +/* + BigBlueButton open source conferencing system - http://www.bigbluebutton.org/ + + Copyright (c) 2012 BigBlueButton Inc. and by respective authors (see below). + + This program is free software; you can redistribute it and/or modify it under the + terms of the GNU Lesser General Public License as published by the Free Software + Foundation; either version 3.0 of the License, or (at your option) any later + version. + + BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A + PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License along + with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. +*/ + +package org.bigbluebutton.lti + +class UrlMappings { + + static mappings = { + "/$controller/$action?/$id?(.$format)?" { + constraints { + // apply constraints here + } + } + + "/"(controller: "tool") + "500"(view: '/error') + } +} diff --git a/bbb-lti/grails-app/controllers/org/bigbluebutton/ToolController.groovy b/bbb-lti/grails-app/controllers/org/bigbluebutton/lti/controllers/ToolController.groovy similarity index 98% rename from bbb-lti/grails-app/controllers/org/bigbluebutton/ToolController.groovy rename to bbb-lti/grails-app/controllers/org/bigbluebutton/lti/controllers/ToolController.groovy index e9e5078040..fed200c8a0 100644 --- a/bbb-lti/grails-app/controllers/org/bigbluebutton/ToolController.groovy +++ b/bbb-lti/grails-app/controllers/org/bigbluebutton/lti/controllers/ToolController.groovy @@ -1,4 +1,13 @@ -package org.bigbluebutton +package org.bigbluebutton.lti.controllers + +import net.oauth.OAuthMessage +import net.oauth.signature.HMAC_SHA1 +import net.oauth.signature.HMAC_SHA256 +import org.bigbluebutton.lti.Parameter +import org.bigbluebutton.BigbluebuttonService +import org.bigbluebutton.LtiService +import java.text.DateFormat + /* BigBlueButton open source conferencing system - http://www.bigbluebutton.org/ @@ -10,28 +19,15 @@ package org.bigbluebutton version. BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A + WARRANTY; without even the implied warranty of MERCHANTABIL ITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. */ -import java.text.DateFormat import java.text.SimpleDateFormat -import java.util.ArrayList -import java.util.HashMap -import java.util.List -import java.util.Map -import java.util.Properties - -import org.apache.commons.codec.digest.DigestUtils - -import net.oauth.OAuthMessage -import net.oauth.signature.OAuthSignatureMethod -import net.oauth.signature.HMAC_SHA1 -import net.oauth.signature.HMAC_SHA256 -import org.bigbluebutton.lti.Parameter +import java.util.* class ToolController { private static final String CONTROLLER_NAME = 'ToolController' diff --git a/bbb-lti/grails-app/i18n/messages.properties b/bbb-lti/grails-app/i18n/messages.properties index 87b6e6e670..f62a293147 100644 --- a/bbb-lti/grails-app/i18n/messages.properties +++ b/bbb-lti/grails-app/i18n/messages.properties @@ -1,23 +1,60 @@ -# -# BigBlueButton open source conferencing system - http://www.bigbluebutton.org/ -# -# Copyright (c) 2012 BigBlueButton Inc. and by respective authors (see below). -# -# This program is free software; you can redistribute it and/or modify it under the -# terms of the GNU Lesser General Public License as published by the Free Software -# Foundation; either version 3.0 of the License, or (at your option) any later -# version. -# -# BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY -# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License along -# with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. -# - -# The welcome.header can be static, however if you want the name of the activity (meeting) to be injected use {0} as part of the text -# {1} can be used to inject the name of the course +default.doesnt.match.message=Property [{0}] of class [{1}] with value [{2}] does not match the required pattern [{3}] +default.invalid.url.message=Property [{0}] of class [{1}] with value [{2}] is not a valid URL +default.invalid.creditCard.message=Property [{0}] of class [{1}] with value [{2}] is not a valid credit card number +default.invalid.email.message=Property [{0}] of class [{1}] with value [{2}] is not a valid e-mail address +default.invalid.range.message=Property [{0}] of class [{1}] with value [{2}] does not fall within the valid range from [{3}] to [{4}] +default.invalid.size.message=Property [{0}] of class [{1}] with value [{2}] does not fall within the valid size range from [{3}] to [{4}] +default.invalid.max.message=Property [{0}] of class [{1}] with value [{2}] exceeds maximum value [{3}] +default.invalid.min.message=Property [{0}] of class [{1}] with value [{2}] is less than minimum value [{3}] +default.invalid.max.size.message=Property [{0}] of class [{1}] with value [{2}] exceeds the maximum size of [{3}] +default.invalid.min.size.message=Property [{0}] of class [{1}] with value [{2}] is less than the minimum size of [{3}] +default.invalid.validator.message=Property [{0}] of class [{1}] with value [{2}] does not pass custom validation +default.not.inlist.message=Property [{0}] of class [{1}] with value [{2}] is not contained within the list [{3}] +default.blank.message=Property [{0}] of class [{1}] cannot be blank +default.not.equal.message=Property [{0}] of class [{1}] with value [{2}] cannot equal [{3}] +default.null.message=Property [{0}] of class [{1}] cannot be null +default.not.unique.message=Property [{0}] of class [{1}] with value [{2}] must be unique + +default.paginate.prev=Previous +default.paginate.next=Next +default.boolean.true=True +default.boolean.false=False +default.date.format=yyyy-MM-dd HH:mm:ss z +default.number.format=0 + +default.created.message={0} {1} created +default.updated.message={0} {1} updated +default.deleted.message={0} {1} deleted +default.not.deleted.message={0} {1} could not be deleted +default.not.found.message={0} not found with id {1} +default.optimistic.locking.failure=Another user has updated this {0} while you were editing + +default.home.label=Home +default.list.label={0} List +default.add.label=Add {0} +default.new.label=New {0} +default.create.label=Create {0} +default.show.label=Show {0} +default.edit.label=Edit {0} + +default.button.create.label=Create +default.button.edit.label=Edit +default.button.update.label=Update +default.button.delete.label=Delete +default.button.delete.confirm.message=Are you sure? + +# Data binding errors. Use "typeMismatch.$className.$propertyName to customize (eg typeMismatch.Book.author) +typeMismatch.java.net.URL=Property {0} must be a valid URL +typeMismatch.java.net.URI=Property {0} must be a valid URI +typeMismatch.java.util.Date=Property {0} must be a valid Date +typeMismatch.java.lang.Double=Property {0} must be a valid number +typeMismatch.java.lang.Integer=Property {0} must be a valid number +typeMismatch.java.lang.Long=Property {0} must be a valid number +typeMismatch.java.lang.Short=Property {0} must be a valid number +typeMismatch.java.math.BigDecimal=Property {0} must be a valid number +typeMismatch.java.math.BigInteger=Property {0} must be a valid number +typeMismatch=Property {0} is type-mismatched + bigbluebutton.welcome.header=Welcome to <b>{0}</b>! bigbluebutton.welcome.footer=To understand how BigBlueButton works see our <a href=\"event:http://www.bigbluebutton.org/content/videos\"><u>tutorial videos</u></a>.<br><br>To join the audio bridge click the headset icon (upper-left hand corner). <b>Please use a headset to avoid causing noise for others. bigbluebutton.welcome.record=This meeting is being recorded diff --git a/bbb-lti/grails-app/i18n/messages_es.properties b/bbb-lti/grails-app/i18n/messages_es.properties index 2513f516b2..17ab01cee3 100644 --- a/bbb-lti/grails-app/i18n/messages_es.properties +++ b/bbb-lti/grails-app/i18n/messages_es.properties @@ -1,20 +1,58 @@ -# -# BigBlueButton open source conferencing system - http://www.bigbluebutton.org/ -# -# Copyright (c) 2012 BigBlueButton Inc. and by respective authors (see below). -# -# This program is free software; you can redistribute it and/or modify it under the -# terms of the GNU Lesser General Public License as published by the Free Software -# Foundation; either version 3.0 of the License, or (at your option) any later -# version. -# -# BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY -# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License along -# with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. -# +default.doesnt.match.message=La propiedad [{0}] de la clase [{1}] con valor [{2}] no corresponde al patrón [{3}] +default.invalid.url.message=La propiedad [{0}] de la clase [{1}] con valor [{2}] no es una URL válida +default.invalid.creditCard.message=La propiedad [{0}] de la clase [{1}] con valor [{2}] no es un número de tarjeta de crédito válida +default.invalid.email.message=La propiedad [{0}] de la clase [{1}] con valor [{2}] no es una dirección de correo electrónico válida +default.invalid.range.message=La propiedad [{0}] de la clase [{1}] con valor [{2}] no entra en el rango válido de [{3}] a [{4}] +default.invalid.size.message=La propiedad [{0}] de la clase [{1}] con valor [{2}] no entra en el tamaño válido de [{3}] a [{4}] +default.invalid.max.message=La propiedad [{0}] de la clase [{1}] con valor [{2}] excede el valor máximo [{3}] +default.invalid.min.message=La propiedad [{0}] de la clase [{1}] con valor [{2}] es menos que el valor mÃÂnimo [{3}] +default.invalid.max.size.message=La propiedad [{0}] de la clase [{1}] con valor [{2}] excede el tamaño máximo de [{3}] +default.invalid.min.size.message=La propiedad [{0}] de la clase [{1}] con valor [{2}] es menor que el tamaño mÃÂnimo de [{3}] +default.invalid.validator.message=La propiedad [{0}] de la clase [{1}] con valor [{2}] no es válido +default.not.inlist.message=La propiedad [{0}] de la clase [{1}] con valor [{2}] no esta contenido dentro de la lista [{3}] +default.blank.message=La propiedad [{0}] de la clase [{1}] no puede ser vacÃÂa +default.not.equal.message=La propiedad [{0}] de la clase [{1}] con valor [{2}] no puede igualar a [{3}] +default.null.message=La propiedad [{0}] de la clase [{1}] no puede ser nulo +default.not.unique.message=La propiedad [{0}] de la clase [{1}] con valor [{2}] debe ser única + +default.paginate.prev=Anterior +default.paginate.next=Siguiente +default.boolean.true=Verdadero +default.boolean.false=Falso +default.date.format=yyyy-MM-dd HH:mm:ss z +default.number.format=0 + +default.created.message={0} {1} creado +default.updated.message={0} {1} actualizado +default.deleted.message={0} {1} eliminado +default.not.deleted.message={0} {1} no puede eliminarse +default.not.found.message=No se encuentra {0} con id {1} +default.optimistic.locking.failure=Mientras usted editaba, otro usuario ha actualizado su {0} + +default.home.label=Principal +default.list.label={0} Lista +default.add.label=Agregar {0} +default.new.label=Nuevo {0} +default.create.label=Crear {0} +default.show.label=Mostrar {0} +default.edit.label=Editar {0} + +default.button.create.label=Crear +default.button.edit.label=Editar +default.button.update.label=Actualizar +default.button.delete.label=Eliminar +default.button.delete.confirm.message=¿Está usted seguro? + +# Data binding errors. Use "typeMismatch.$className.$propertyName to customize (eg typeMismatch.Book.author) +typeMismatch.java.net.URL=La propiedad {0} debe ser una URL válida +typeMismatch.java.net.URI=La propiedad {0} debe ser una URI válida +typeMismatch.java.util.Date=La propiedad {0} debe ser una fecha válida +typeMismatch.java.lang.Double=La propiedad {0} debe ser un número válido +typeMismatch.java.lang.Integer=La propiedad {0} debe ser un número válido +typeMismatch.java.lang.Long=La propiedad {0} debe ser un número válido +typeMismatch.java.lang.Short=La propiedad {0} debe ser un número válido +typeMismatch.java.math.BigDecimal=La propiedad {0} debe ser un número válido +typeMismatch.java.math.BigInteger=La propiedad {0} debe ser un número válido bigbluebutton.welcome.header=Bienvenido a <b>{0}</b>! bigbluebutton.welcome.footer=Para entender como funciona BigBlueButton consulte estos <a href=\"event:http://www.bigbluebutton.org/content/videos\"><u>videos tutoriales</u></a>.<br><br>Para activar el audio haga click en el icono de auricular (equina superior izquierda). <b>Por favor utilice auricular para evitar causar ruido. diff --git a/bbb-lti/grails-app/i18n/messages_fr.properties b/bbb-lti/grails-app/i18n/messages_fr.properties index a25b69bf01..a042e108cb 100644 --- a/bbb-lti/grails-app/i18n/messages_fr.properties +++ b/bbb-lti/grails-app/i18n/messages_fr.properties @@ -1,20 +1,22 @@ -# -# BigBlueButton open source conferencing system - http://www.bigbluebutton.org/ -# -# Copyright (c) 2012 BigBlueButton Inc. and by respective authors (see below). -# -# This program is free software; you can redistribute it and/or modify it under the -# terms of the GNU Lesser General Public License as published by the Free Software -# Foundation; either version 3.0 of the License, or (at your option) any later -# version. -# -# BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY -# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License along -# with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. -# +default.doesnt.match.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] ne correspond pas au pattern [{3}] +default.invalid.url.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] n'est pas une URL valide +default.invalid.creditCard.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] n'est pas un numéro de carte de crédit valide +default.invalid.email.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] n'est pas une adresse e-mail valide +default.invalid.range.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] n'est pas contenue dans l'intervalle [{3}] à [{4}] +default.invalid.size.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] n'est pas contenue dans l'intervalle [{3}] à [{4}] +default.invalid.max.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] est supérieure à la valeur maximum [{3}] +default.invalid.min.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] est inférieure à la valeur minimum [{3}] +default.invalid.max.size.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] est supérieure à la valeur maximum [{3}] +default.invalid.min.size.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] est inférieure à la valeur minimum [{3}] +default.invalid.validator.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] n'est pas valide +default.not.inlist.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] ne fait pas partie de la liste [{3}] +default.blank.message=La propriété [{0}] de la classe [{1}] ne peut pas être vide +default.not.equal.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] ne peut pas être égale à [{3}] +default.null.message=La propriété [{0}] de la classe [{1}] ne peut pas être nulle +default.not.unique.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] doit être unique + +default.paginate.prev=Précédent +default.paginate.next=Suivant bigbluebutton.welcome.header=<br>Bienvenue au <b>{0}</b>!<br> bigbluebutton.welcome.footer=<br>Pour comprendre comment fonctionne BigBlueButton, consultez les <a href=\"event:http://www.bigbluebutton.org/content/videos\"><u>didacticiels vidéo</u></a>.<br><br>Pour activer l'audio cliquez sur l'icône du casque à écouteurs (coin supérieur gauche). <b>S'il vous pla�t utiliser le casque pour éviter de causer du bruit.</b> diff --git a/bbb-lti/grails-app/conf/BootStrap.groovy b/bbb-lti/grails-app/init/org/bigbluebutton/BootStrap.groovy similarity index 94% rename from bbb-lti/grails-app/conf/BootStrap.groovy rename to bbb-lti/grails-app/init/org/bigbluebutton/BootStrap.groovy index 88f01368e6..eb42f0ec56 100644 --- a/bbb-lti/grails-app/conf/BootStrap.groovy +++ b/bbb-lti/grails-app/init/org/bigbluebutton/BootStrap.groovy @@ -1,25 +1,27 @@ -/* - BigBlueButton open source conferencing system - http://www.bigbluebutton.org/ - - Copyright (c) 2012 BigBlueButton Inc. and by respective authors (see below). - - This program is free software; you can redistribute it and/or modify it under the - terms of the GNU Lesser General Public License as published by the Free Software - Foundation; either version 3.0 of the License, or (at your option) any later - version. - - BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A - PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License along - with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. -*/ - -class BootStrap { - - def init = { servletContext -> - } - def destroy = { - } -} +/* + BigBlueButton open source conferencing system - http://www.bigbluebutton.org/ + + Copyright (c) 2012 BigBlueButton Inc. and by respective authors (see below). + + This program is free software; you can redistribute it and/or modify it under the + terms of the GNU Lesser General Public License as published by the Free Software + Foundation; either version 3.0 of the License, or (at your option) any later + version. + + BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A + PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License along + with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. +*/ + +package org.bigbluebutton + +class BootStrap { + + def init = { servletContext -> + } + def destroy = { + } +} diff --git a/bbb-lti/grails-app/views/error.gsp b/bbb-lti/grails-app/views/error.gsp index e3135cfb73..9a3bb8aa3d 100644 --- a/bbb-lti/grails-app/views/error.gsp +++ b/bbb-lti/grails-app/views/error.gsp @@ -1,18 +1,31 @@ -<!DOCTYPE html> +<!doctype html> <html> - <head> - <title><g:if env="development">Grails Runtime Exception</g:if><g:else>Error</g:else></title> - <meta name="layout" content="tool"> - <g:if env="development"><asset:stylesheet src="errors.css"/></g:if> - </head> - <body> - <g:if env="development"> - <g:renderException exception="${exception}" /> - </g:if> - <g:else> - <ul class="errors"> - <li>An error has occurred</li> - </ul> - </g:else> - </body> + <head> + <title><g:if env="development">Grails Runtime Exception</g:if><g:else>Error</g:else></title> + <meta name="layout" content="main"> + <g:if env="development"><asset:stylesheet src="errors.css"/></g:if> + </head> + <body> + <g:if env="development"> + <g:if test="${Throwable.isInstance(exception)}"> + <g:renderException exception="${exception}" /> + </g:if> + <g:elseif test="${request.getAttribute('javax.servlet.error.exception')}"> + <g:renderException exception="${request.getAttribute('javax.servlet.error.exception')}" /> + </g:elseif> + <g:else> + <ul class="errors"> + <li>An error has occurred</li> + <li>Exception: ${exception}</li> + <li>Message: ${message}</li> + <li>Path: ${path}</li> + </ul> + </g:else> + </g:if> + <g:else> + <ul class="errors"> + <li>An error has occurred</li> + </ul> + </g:else> + </body> </html> diff --git a/bbb-lti/grails-app/views/index.gsp b/bbb-lti/grails-app/views/index.gsp index ee53f42808..ee59d2b723 100644 --- a/bbb-lti/grails-app/views/index.gsp +++ b/bbb-lti/grails-app/views/index.gsp @@ -1,123 +1,77 @@ -<!DOCTYPE html> +<!doctype html> <html> - <head> - <meta name="layout" content="main"/> - <title>Welcome to Grails</title> - <style type="text/css" media="screen"> - #status { - background-color: #eee; - border: .2em solid #fff; - margin: 2em 2em 1em; - padding: 1em; - width: 12em; - float: left; - -moz-box-shadow: 0px 0px 1.25em #ccc; - -webkit-box-shadow: 0px 0px 1.25em #ccc; - box-shadow: 0px 0px 1.25em #ccc; - -moz-border-radius: 0.6em; - -webkit-border-radius: 0.6em; - border-radius: 0.6em; - } +<head> + <meta name="layout" content="main"/> + <title>Welcome to Grails</title> +</head> +<body> +<content tag="nav"> + <li class="dropdown"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Application Status <span class="caret"></span></a> + <ul class="dropdown-menu"> + <li class="dropdown-item"><a href="#">Environment: ${grails.util.Environment.current.name}</a></li> + <li class="dropdown-item"><a href="#">App profile: ${grailsApplication.config.grails?.profile}</a></li> + <li class="dropdown-item"><a href="#">App version: + <g:meta name="info.app.version"/></a> + </li> + <li role="separator" class="dropdown-divider"></li> + <li class="dropdown-item"><a href="#">Grails version: + <g:meta name="info.app.grailsVersion"/></a> + </li> + <li class="dropdown-item"><a href="#">Groovy version: ${GroovySystem.getVersion()}</a></li> + <li class="dropdown-item"><a href="#">JVM version: ${System.getProperty('java.version')}</a></li> + <li role="separator" class="dropdown-divider"></li> + <li class="dropdown-item"><a href="#">Reloading active: ${grails.util.Environment.reloadingAgentEnabled}</a></li> + </ul> + </li> + <li class="dropdown"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Artefacts <span class="caret"></span></a> + <ul class="dropdown-menu"> + <li class="dropdown-item"><a href="#">Controllers: ${grailsApplication.controllerClasses.size()}</a></li> + <li class="dropdown-item"><a href="#">Domains: ${grailsApplication.domainClasses.size()}</a></li> + <li class="dropdown-item"><a href="#">Services: ${grailsApplication.serviceClasses.size()}</a></li> + <li class="dropdown-item"><a href="#">Tag Libraries: ${grailsApplication.tagLibClasses.size()}</a></li> + </ul> + </li> + <li class="dropdown"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Installed Plugins <span class="caret"></span></a> + <ul class="dropdown-menu"> + <g:each var="plugin" in="${applicationContext.getBean('pluginManager').allPlugins}"> + <li class="dropdown-item"><a href="#">${plugin.name} - ${plugin.version}</a></li> + </g:each> + </ul> + </li> +</content> - .ie6 #status { - display: inline; /* float double margin fix http://www.positioniseverything.net/explorer/doubled-margin.html */ - } +<div class="svg" role="presentation"> + <div class="grails-logo-container"> + <asset:image src="grails-cupsonly-logo-white.svg" class="grails-logo"/> + </div> +</div> - #status ul { - font-size: 0.9em; - list-style-type: none; - margin-bottom: 0.6em; - padding: 0; - } +<div id="content" role="main"> + <section class="row colset-2-its"> + <h1>Welcome to Grails</h1> - #status li { - line-height: 1.3; - } + <p> + Congratulations, you have successfully started your first Grails application! At the moment + this is the default page, feel free to modify it to either redirect to a controller or display + whatever content you may choose. Below is a list of controllers that are currently deployed in + this application, click on each to execute its default action: + </p> - #status h1 { - text-transform: uppercase; - font-size: 1.1em; - margin: 0 0 0.3em; - } + <div id="controllers" role="navigation"> + <h2>Available Controllers:</h2> + <ul> + <g:each var="c" in="${grailsApplication.controllerClasses.sort { it.fullName } }"> + <li class="controller"> + <g:link controller="${c.logicalPropertyName}">${c.fullName}</g:link> + </li> + </g:each> + </ul> + </div> + </section> +</div> - #page-body { - margin: 2em 1em 1.25em 18em; - } - - h2 { - margin-top: 1em; - margin-bottom: 0.3em; - font-size: 1em; - } - - p { - line-height: 1.5; - margin: 0.25em 0; - } - - #controller-list ul { - list-style-position: inside; - } - - #controller-list li { - line-height: 1.3; - list-style-position: inside; - margin: 0.25em 0; - } - - @media screen and (max-width: 480px) { - #status { - display: none; - } - - #page-body { - margin: 0 1em 1em; - } - - #page-body h1 { - margin-top: 0; - } - } - </style> - </head> - <body> -<!-- index --> - <a href="#page-body" class="skip"><g:message code="default.link.skip.label" default="Skip to content…"/></a> - <div id="status" role="complementary"> - <h1>Application Status</h1> - <ul> - <li>App version: <g:meta name="app.version"/></li> - <li>Grails version: <g:meta name="app.grails.version"/></li> - <li>Groovy version: ${GroovySystem.getVersion()}</li> - <li>JVM version: ${System.getProperty('java.version')}</li> - <li>Reloading active: ${grails.util.Environment.reloadingAgentEnabled}</li> - <li>Controllers: ${grailsApplication.controllerClasses.size()}</li> - <li>Domains: ${grailsApplication.domainClasses.size()}</li> - <li>Services: ${grailsApplication.serviceClasses.size()}</li> - <li>Tag Libraries: ${grailsApplication.tagLibClasses.size()}</li> - </ul> - <h1>Installed Plugins</h1> - <ul> - <g:each var="plugin" in="${applicationContext.getBean('pluginManager').allPlugins}"> - <li>${plugin.name} - ${plugin.version}</li> - </g:each> - </ul> - </div> - <div id="page-body" role="main"> - <h1>Welcome to Grails</h1> - <p>Congratulations, you have successfully started your first Grails application! At the moment - this is the default page, feel free to modify it to either redirect to a controller or display whatever - content you may choose. Below is a list of controllers that are currently deployed in this application, - click on each to execute its default action:</p> - - <div id="controller-list" role="navigation"> - <h2>Available Controllers:</h2> - <ul> - <g:each var="c" in="${grailsApplication.controllerClasses.sort { it.fullName } }"> - <li class="controller"><g:link controller="${c.logicalPropertyName}">${c.fullName}</g:link></li> - </g:each> - </ul> - </div> - </div> - </body> +</body> </html> diff --git a/bbb-lti/grails-app/views/layouts/main.gsp b/bbb-lti/grails-app/views/layouts/main.gsp index 49d9fb705a..6f3d601a93 100644 --- a/bbb-lti/grails-app/views/layouts/main.gsp +++ b/bbb-lti/grails-app/views/layouts/main.gsp @@ -1,32 +1,70 @@ -<!DOCTYPE html> -<!--[if lt IE 7 ]> <html lang="en" class="no-js ie6"> <![endif]--> -<!--[if IE 7 ]> <html lang="en" class="no-js ie7"> <![endif]--> -<!--[if IE 8 ]> <html lang="en" class="no-js ie8"> <![endif]--> -<!--[if IE 9 ]> <html lang="en" class="no-js ie9"> <![endif]--> -<!--[if (gt IE 9)|!(IE)]><!--> <html lang="en" class="no-js"><!--<![endif]--> - <head> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> - <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> - <title><g:message code="tool.view.title" /></title> - <meta name="viewport" content="width=device-width, initial-scale=1.0"> - <link rel="shortcut icon" href="${assetPath(src: 'favicon.ico')}" type="image/x-icon"> - <link rel="apple-touch-icon" href="${assetPath(src: 'apple-touch-icon.png')}"> - <link rel="apple-touch-icon" sizes="114x114" href="${assetPath(src: 'apple-touch-icon-retina.png')}"> - <asset:stylesheet src="main.css"/> - <asset:stylesheet src="mobile.css"/> - <asset:stylesheet src="application.css"/> - <asset:javascript src="application.js"/> - <g:layoutHead/> - </head> - <body> - <div id="spinner" class="spinner" style="display:none;"> - <asset:image src="spinner.gif" alt="Spinner"/> - </div> - <div class="logo" id="logo" role="banner"> - <a href="http://bigbluebutton.org"><asset:image src="bbb_logo.jpg" alt="BigBlueButton"/></a> - </div> - <g:layoutBody /> - <div class="footer" role="contentinfo"></div> - <div id="spinner" class="spinner" style="display:none;"><g:message code="spinner.alt" default="Loading…"/></div> - </body> +<!doctype html> +<html lang="en" class="no-js"> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> + <meta http-equiv="X-UA-Compatible" content="IE=edge"/> + <title> + <g:layoutTitle default="Grails"/> + </title> + <meta name="viewport" content="width=device-width, initial-scale=1"/> + <asset:link rel="icon" href="favicon.ico" type="image/x-ico"/> + + <asset:stylesheet src="application.css"/> + + <g:layoutHead/> +</head> + +<body> + +<nav class="navbar navbar-expand-lg navbar-dark navbar-static-top" role="navigation"> + <a class="navbar-brand" href="/#"><asset:image src="grails.svg" alt="Grails Logo"/></a> + <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarContent" aria-controls="navbarContent" aria-expanded="false" aria-label="Toggle navigation"> + <span class="navbar-toggler-icon"></span> + </button> + + <div class="collapse navbar-collapse" aria-expanded="false" style="height: 0.8px;" id="navbarContent"> + <ul class="nav navbar-nav ml-auto"> + <g:pageProperty name="page.nav"/> + </ul> + </div> + +</nav> + +<g:layoutBody/> + +<div class="footer row" role="contentinfo"> + <div class="col"> + <a href="http://guides.grails.org" target="_blank"> + <asset:image src="advancedgrails.svg" alt="Grails Guides" class="float-left"/> + </a> + <strong class="centered"><a href="http://guides.grails.org" target="_blank">Grails Guides</a></strong> + <p>Building your first Grails app? Looking to add security, or create a Single-Page-App? Check out the <a href="http://guides.grails.org" target="_blank">Grails Guides</a> for step-by-step tutorials.</p> + + </div> + <div class="col"> + <a href="http://docs.grails.org" target="_blank"> + <asset:image src="documentation.svg" alt="Grails Documentation" class="float-left"/> + </a> + <strong class="centered"><a href="http://docs.grails.org" target="_blank">Documentation</a></strong> + <p>Ready to dig in? You can find in-depth documentation for all the features of Grails in the <a href="http://docs.grails.org" target="_blank">User Guide</a>.</p> + + </div> + + <div class="col"> + <a href="https://grails-slack.cfapps.io" target="_blank"> + <asset:image src="slack.svg" alt="Grails Slack" class="float-left"/> + </a> + <strong class="centered"><a href="https://grails-slack.cfapps.io" target="_blank">Join the Community</a></strong> + <p>Get feedback and share your experience with other Grails developers in the community <a href="https://grails-slack.cfapps.io" target="_blank">Slack channel</a>.</p> + </div> +</div> + + +<div id="spinner" class="spinner" style="display:none;"> + <g:message code="spinner.alt" default="Loading…"/> +</div> + +<asset:javascript src="application.js"/> + +</body> </html> diff --git a/bbb-lti/grails-wrapper.jar b/bbb-lti/grails-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..bc85146c130e69264ce20e079987784615201b35 GIT binary patch literal 5463 zcma)A1yq#l)<!x-N<alfU<m1MkcMICp=)4>0m-3L8ir13krV-yZl!Z*X{1v+1qJ-! zKlhw_E@$0;{rg*Qd}}?=e)s#WZ|}ACqXtAn$3;QG#zuJp)lovZG1S}X#&B*1NLK3w zo1%&w2O5gne*(uMgM@DYf;WTo??BKC6-7B&O)Yki+%X8*uMA{kA0Ys;u?!-IDm6I2 z@+__$fsn{C*Fi;A_8JWZ4kaX#d7>ZL&pLv~uE@%=w6?s4diSgw|9=LBb+fl}hQMCJ z{~6NXVEF%r!R%o!|G*}dKU3Yh@hOFYf<k`>D+jZOYFNCqfWR#jAokFg7S8PEFClPv zwAQQ&i8`rK5fu|v==)^cXE`2hXoAKqjR15YeK9~^ij+7}S}17*g5c3?=Qzg^y}(QL zP~<%v!IJ2!8{E>xHePPuX&%aUJ=6Ezhkf~deo58>o~vAH*=}WcEMz#CN3P@L2>!M8 z#M0#`UEFYTUGBaBypBOFTq_4!nxaMeYd|eW*O%4=$Pou=FJXwM;kU;-!QfVR8oej9 zJ)m88mhTIeWW_s4*BW0$Z`eP7`(}=$C#Cx}dTIUoBd4(Ue($KO`E|fmOgd-<)9J31 zti3&x8@w=v$9}Ai?`OjEX*#mm*9Lx3wPA4^;%Uhksbuyr6{Fi|hCqD{uZ=GKEz;H7 zXXo*obnU$>aS}_|&YTQ@Lp9G#p3+!n#jXO@T$^pY4cy{TgZxWcm&S?p{4dn(3wEbZ z2`GEL+90^Aeb3=|c<D@<3psjebOBokbECzlXk`4vpUa=mx>hGUUOL?`wGsF_FaEQC z#a}<e$hIc8A^iv6Zp%JN)4P2^L4+T!r$({1r7anjyW?al<O!{(t6RB-fs5MLqIN9G zlL4OlKh+!^u`vQh{5g~tPp)b0-kC-cc>EY|c!{Bi#al<CmEk)B%Ow6<l7hb+A~zNF zHS^+3$$#qNoV)8hUgT0wx5qjlid#SLaA)8=_wZqGHi}&YW32J8d;OcI^ORFuGxmv9 zT$0;W_b57?yaH%56*#`oHbnYC-=|)L@7(t?+(s)cHk+I;HXt8J&+W#q3l_~o?I-xO z$QcPs*m8TDBqQJ6flU(4*_Udaq&^|T=!D3Msup2CA@Y1=6+T)qukl${V&!vKbr9Vi z`D!)@Kh{TT2x~QMM?AIa8*8$S`ED=Ongq5&5*;{VElhE7`H8$+wlfFCw0*`qI&Vy? zhz9^+Rpl-j3%O|%GvF14>g3{4S_@QoU}K9V^d0B#=&`)ng7Vq&=I3sNQKJPlID1wJ zcv-oa4hx?{H9*WIWBofx)BBxo{xj2+TfL0sZ}KUC0tJQqPO50SK%8Cv$c_RX91pE= zvTFzKGyzXhVu}g$))z7WC}q4X_B|Xf(`6`Egk%T5xTSGIK$>TJhCtj@XM;;+bxn1O zS;52vLfe+?J3SxRV0Lt3Vz1=e?q`k}BjE2}mVh)`v>DZuU+dZ4gJQG(gUvsBe~TYc zyc#zv37iGHEQKR}EZrAsGHK0X>2s86#S%Tw!NqXzU6N+m>r$_Gjt%tgr#*m>**cjB z?RCqGdPsK4ALby^JQNt#QUh05)|bMuXc8B~*5b}gm2qQ$t+D+}M1%m*^I(MhVQOGE zn6;B}?SL6WHOUCheJtNubV#XqRZ1#E8#csz?j!X16(iV($mD2|8N)=ID9+vo!vtI$ zB<Ba}wAt#K6gv+kZRihjU^!1g5NPz;_{;|F_w2iaeF#;7Z}<DR2v-lJF(i%_yIE?M zX)z??mnFc5_<n`CWD-9X$yox=3$O&3&XWTTR(B?G{qmM;&$F<;yrw-5!ty^^RMj{c zLe+Oy)$z6kE=XFz<x5@()agj%VC8!GFb&%p#Gen#1*EZAio&*?yu+wLl+>59EtS>v zwXTat**RGLWU1wqMfHu1)mDqkHPitJBsCGwCpKa}CX<nAzE648MYUxm@SNtfCwqko zqGk>cnNBBn9ynH~LZoxJDIy+c6;DyOe;@lHLja4W9L*DPdH!reFSnmMh8|-bJ&aY1 z7=*d1T?MXv`CcOo-#ZM#Kxb)a`r%7qsz_fBbp^;)Ythiklb(|}5|g+gIo~v=)>EhU z7;X?6iMpofOD|2L>jNM<^1`A!bc`k9JIQy7peB?ri2K+wVK*ko#JD-#Bx-9QFD2Jj z_?Y|pguUvcw5lM{)4r{ZRWFU!O5E(c<YF1!+Gw{d+>MJO5o0(;B^5uR97ybCFctq= zPB|lGd30}PCxJ*yzJ^tCH6#6}XFyAK>2@zs`{6KZX+oe#P0WlOFqG*63j`==czSBY zED~Q)JU?vCy@%x-p`K8z)}x>yIsA^&+Z9;h{+&yo`?-iMRe5wBROdhdAXX^PB)IUU zG2C1PAT8f%XLRv)3@Q4U=}U7_J=>H>T)XYVWK;{Be&ylpi!@&iH~L4LfZk6#;qj|- z$z2NcFwJlD4VGL*%JZb;?l=VUxsZVOfz~xLr%-ODJa!T>I{G5tLV9fEAiR5NR*+IA z%#t!loeqj6jPE^#4<9KokS4y8U2Yj{D{OP?q<*`&&pKMD#%o}0^D(VLDipsov&RM& z_jouEW|0p;(P2Ih3-w<%d2}898=F;#=N09qPb@}5sGZ0NMa~sYB`w{oslIf;4nOS} zH>&3`vgkUefRO?zsVrgIv27j-%AfW^vjxqZG=-8Mm|!sSEz4O`bUZ*)&xi6h5q}(( ziC_W;14%5}KtVqTk~mV7W<HCBazKfzX=ky2y&SV5eEeBqj-U0>zA`4=!|5Fb<UzCs zQ!?+9Be!ljlL<Llru2hhfO<>`?^^^VDxM0ccY<{3X`ZIurfD;PmrIj`Y!r>01Oltm zNH=6w;^P7$A5NWAp!T3(kS>jPJmJzYUD`q<sFNM@a+$E2Vx@A6TX%(#maCC~bM;9g z^Zl(NI@5KZ4G!7?MB1LZ<5i_bjIc9)M;yS+iUs9~`gxr`=&}zF3%t|~-OtHB*>ZXV z(JNdtM?>`A@7NSnAJE^Keg12tuT+4wD}F?B-+GkaO!IU+GgophCfMc7LN>D~f~;+b z-K5kE{t79a6(AHp6W3#oQ=3|BJw+~HXEOB^#Z1)SM;ZfmX5pQ}k;zT3YZedHNEf#g zcoQWTwC`-iH~E~~n60NapG}<1SDj9K^g605i!x;TEH^@5y?d}I!fPalHUuplJN%fh zT*)vF%@<N>UYYI82q(?#dYvgdHk%00j^sn=mPEKNOX0+v?u6?d^!7PyDs~zmb)#fI zMiAu2w}=<`!p!olozp#H=BlkYfFPm_-f}%d`dDV_B!YHJWSqD?t;5sEeaQ(G>f8{= zLDHUA)&M0u9rSc#m8=H?&Y<iy(d9LvZ1Ta-EiB*lqzyZ3PVS@%m)_TmoZDZII5t&$ z+fzI_;Xy(hoeor@jLTiE{2Mc5xjmlKCCJEmFfRg>fH5duIoCC2Nam6IUdBz--JZSY zTR#2z@<rIsT%H~FSnx%V-Vr$&;kvy4R5&32yt6AO8!=N~5?|H1OR6<m&ta@iVO=Ee z7_i}U&6bnlr%WkSgq>C!7n~`ZR^KNRI%uH%rl8-W@m>7mhD*B`zlapU*zKQYt?6=o zHNGroQ<nE}_ohB`5<Zj?lsT;#vFadBo2V-6DJ%l>xR!j#_T%d}?tUl3fM3BAFwmK2 za-6{7UU?PLN9A)+C{_$9{xW5m;BJ%HX$5`iYzK^G#KN)chq`^g<QQo>J4<)-JVm4v z!;*PRJXJ@d3U_wwtWx~-H|J`m%Vyh;#M7*5;n|A9LOvl{QgqZ4Wd~nj-M-%XjX?u! zWoTuMGhV-Dglj851#tlQak><#VHz67jss}CH47%lY_qCwMGuZ$GP{Z{5{<qr(p#`3 zhGvxsKdh3_%^d1&c>dkcfIJ&heKoZe9XbSYD?j~BScCTlW^eAV^jepFQ!Q<!!xNbV zfDU}*sL&7g7mi3(9A(37cI(RsWCR{|=~`yI{!z8I!~&10v14sQueA^g8WUVQ?#uA* zSygbhvKX%7j?Dqd-jteR)sUUU+;y!6pK@-TG{&HolxN<%*?`0^{Z;baZDVCz!1(if za2n9O8a-j7iP^J3Z$-Q0sD2fgOec46!J;e8E4=ZkfUL~j<x=#kOp|zlg#jUlZ<j`F zH29Y(PSFlDF~U~&{6g|SJdy5|j_IL}u@9?zKpUeUdJjTz`Tj^zik<nAbo}+vEO*Q( zP^WMSS0$&^AAc`q28Zd&c!;8JOl^BKwe|N*&}(XG*+<E>kU=iw(V$8@@U74XCnOo6 zu+m^VE^;+xG#C@PSeL{y_(CWJ!aumi(OZt{cWo5%=w*x2ODVQ=_5IX_ggN%3`*dx3 zLMf&kXHFZ_sj*CEytA>g;q9w7ZBAuSh1Tm0^-iLc6%U+*Pg{VGd1(|88H%TlyRD;z zILJKz<7T{3U4>clLiO>bvOUpISy*Ou<)DFBOlLIvmQM^^F=fn~KTP-{PnfQIiZ=zE z%q6~Zz}LX|sp?A~Unu-hG7Cer1$ghMUN^f7VdVV%qjQ0JVwVzQ;8EDN`q#6Y8yf8k zes^z3k7=9TOn}&#>N5Pul>IU0M`PbjmB{t2O991pb46HgRZ5F1P@I>GC1WHgGCYY* z*`7yi0im;GHYXP`J2FUBv!Y@c=sgmO^}xl<mtkewD*rw)m|dyX96c{MVs6Dosj+@c zzv<D(0IBITm9IwJ2oJVH=72Ml53SqQD?Z=rQ>ut(;MkLgI>m`u7)(Nn<Lnrdc-I>e z2aR6>5e_ZeJiW}G2t;36ejg4x#ldlRxy=)DbX(QMb9C**ib8W#+h5JwU5=1EAZF-! zNnC*bkR(+n$dzPjQRXvObo6{-SB0=cqJp`m)fEo1>?6qh7-B87c>in6N^biU!=rD| zmF1Ky%?S7;xSo01a7{eG6>M+0%k=0GS#gOhAjGpt_XF5!vMHKc=u~iwWoU)Ode=&y zEKU3UY)aSJJeT3<k{x_JI<L8M-kbS#&{e^F%sj7ffk0sJhwIVgO!s|JTsGYdws&Ev z5$N_%(OTh!m8cEcxm};w705;jf>@nDBKonOk)%NULL}}PDTjyx->+`x_1f%ab1`qZ z=R&hn*zD#c6wu^OT@xJb32c9(A^e4&nfkO;!45;3^}ejq_l=5;u~jRV;%)mR9UWsb zoje__m34ASi<tUOWsWPtZ@I_Fl*>9M$4dv>@7vEyqBDel642-aUFCU@aB0YG@3m$W zR|cQ$bQ?UGW9=qt8h-)B$cD!O-VMZN9Pl5BNmngI)h6!iX%WlpzXJBmq)d?#%Xl!_ z_nu)s&Q5e`P<|1H_St;|VGxjrAL^a39#yLZbzbse8Y3rdGRQp}w#V4_3}B0XlUS8c z-_G1w(|39wYleEp*`q?hUGNmOGy!GsG_k*HgsxG+;X|aM$CF5UH1D`t2mIGG@*z7b zZHn)ez%6<&^CA`N2bddwToe9h?{U*^{MGpr{JZyXbawFY{6|l(&9Vxlx#{UC(NR!1 z?}9Zw;Vu?-YR(Rh7S1j(3-}9H7i$Z97nnK3#o^EXUeivM<i!KO6l3o-!JKT|hwAwp zQzcW!VgL#{n3<VI_1h_h^Qt6}x7XZwbJ>i<s?`Y^1?ckLHPgzRdI3gmGhwB`5K{EG zLPWyf_t(8ec4`XFcs|aM5JkhT+?eMuLy&oI3m<DyJWrf_>#NY*7&59!N{v{<1#m1S zF+*c-4milDmD2$3dzf2WOScMGIK(cuc@gOiV*jQ<^D6y&9c{Z!8C(5!h>8v-%`cTa z8kTaM*DrJw))0=(MZ#@5_K_u$AGn~iQsbT!e%PyfaRUTCp+3DInwR$LSMb&{cV+O$ z2s#ZM-W>1c+|MIAfdWNc=@@<tT_%Tr>)^FiPI8p)ejkzXj+6C@k*!@>zSy2&?-0yH zkLDr>uwUYj-k3ULG`y)Ed#lDtJL1xwmy}${E4KAuTItH!2m4;n=v^xp3jB&xH`jR< z$Sc09QwFjZ@rsTR)wC%*jjra5p^>ime0X&Fu)VLYDQ#+K#m{?Kpk3<(Gp1pmN0fCu z)G*2A>TCwqAx;qO+)d$Bk~6d9Y^0<zr{6pOfgAZI-mK9^pj>&@?AcF1ORoD1=M>&B zl?F5V{xH)w=I~G`3#O)^{HUn&tB_+Co4Qw#L8h_8J=&}^rptK5Z$6z<&7>q(X_&k< z*g6+%S*4Bgtx=7MNc9N_zlS!0X)wZ~DJJxDh-AyDZTabv;gjwot!W>_1%{**N4Z9a zHot@`0yW@0R8qA6E|uN>t0*WBP<CJ3u73$<|DfFw&ThfCmLI@;Gyg^Vn~e4k4>!2K z%VD?dKMqd5S^p)D{a>V8aqJJfjkf7#`!CY}N@aJMccrpFx%mN`cbNZ8IJ@iduA=a7 zk0dv#`}bJ>rZ3!ea!dO2E8LcbKkW8Gu@C-o@<*Y#OTAkt{v_uIG~K2CKgxz05Cikp Q1NO~BaT5_U$?e<!0AXT=bN~PV literal 0 HcmV?d00001 diff --git a/bbb-lti/grailsw b/bbb-lti/grailsw index f7209176eb..8d0cc123e4 100644 --- a/bbb-lti/grailsw +++ b/bbb-lti/grailsw @@ -1,363 +1,152 @@ +#!/usr/bin/env bash + ############################################################################## -## ## -## Grails JVM Bootstrap for UN*X ## -## ## +## +## Grails start up script for UN*X +## ############################################################################## -PROGNAME=`basename "$0"` -DIRNAME=`dirname "$0"` +# Add default JVM options here. You can also use JAVA_OPTS and GRAILS_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-XX:+TieredCompilation" "-XX:TieredStopAtLevel=1" "-XX:CICompilerCount=3"' + -# Use the maximum available, or set MAX_FD != -1 to use that +# Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD="maximum" -warn() { - echo "${PROGNAME}: $*" +warn ( ) { + echo "$*" } -die() { - warn "$*" +die ( ) { + echo + echo "$*" + echo exit 1 } -earlyInit() { - return -} -lateInit() { - return -} - -GROOVY_STARTUP=~/.groovy/startup -if [ -r "$GROOVY_STARTUP" ]; then - . "$GROOVY_STARTUP" -fi - -earlyInit - # OS specific support (must be 'true' or 'false'). -cygwin=false; -darwin=false; -mingw=false; +cygwin=false +msys=false +darwin=false case "`uname`" in - CYGWIN*) - cygwin=true - ;; - - Darwin*) - darwin=true - ;; - - MINGW*) - mingw=true - ;; + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; esac -# Attempt to set JAVA_HOME if it's not already set -if [ -z "$JAVA_HOME" ]; then - - # Set JAVA_HOME for Darwin - if $darwin; then - - [ -z "$JAVA_HOME" -a -d "/Library/Java/Home" ] && - export JAVA_HOME="/Library/Java/Home" - - [ -z "$JAVA_HOME" -a -d "/System/Library/Frameworks/JavaVM.framework/Home" ] && - export JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Home" - - fi - -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$GRAILS_HOME" ] && - GRAILS_HOME=`cygpath --unix "$GRAILS_HOME"` - [ -n "$JAVACMD" ] && - JAVACMD=`cygpath --unix "$JAVACMD"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` - [ -n "$CP" ] && - CP=`cygpath --path --unix "$CP"` -fi - -# quick detection of JDK version without JVM startup overhead -CLASSFILE_HEADER_FILE="${JAVA_HOME}/include/classfile_constants.h" -if [ -z "$GRAILS_NO_PERMGEN" -a -f "${CLASSFILE_HEADER_FILE}" ]; then - CLASSFILE_VERSION=`cat "${CLASSFILE_HEADER_FILE}" | grep "#define JVM_CLASSFILE_MAJOR_VERSION" | awk '{ print $3 }' 2> /dev/null` - if [ 0$CLASSFILE_VERSION -ge 52 ]; then - GRAILS_NO_PERMGEN=1 - fi -fi - -# Remove possible trailing slash (after possible cygwin correction) -GRAILS_HOME=`echo $GRAILS_HOME | sed -e 's|/$||g'` - -# Locate GRAILS_HOME if not it is not set -if [ -z "$GRAILS_HOME" -o ! -d "$GRAILS_HOME" ] ; then - # resolve links - $0 may be a link to groovy's home - PRG="$0" - - # need this for relative symlinks - while [ -h "$PRG" ] ; do +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do ls=`ls -ld "$PRG"` link=`expr "$ls" : '.*-> \(.*\)$'` if expr "$link" : '/.*' > /dev/null; then - PRG="$link" + PRG="$link" else - PRG=`dirname "$PRG"`"/$link" + PRG=`dirname "$PRG"`"/$link" fi - done - - SAVED="`pwd`" - cd "`dirname \"$PRG\"`/.." - GRAILS_HOME="`pwd -P`" - cd "$SAVED" -fi - -# Warn the user if JAVA_HOME and/or GRAILS_HOME are not set. -if [ -z "$JAVA_HOME" ] ; then - die "JAVA_HOME environment variable is not set" -elif [ ! -d "$JAVA_HOME" ] ; then - die "JAVA_HOME is not a directory: $JAVA_HOME" -fi - -if [ -z "$GRAILS_HOME" ] ; then - warn "GRAILS_HOME environment variable is not set" -fi - -if [ ! -d "$GRAILS_HOME" ] ; then - die "GRAILS_HOME is not a directory: $GRAILS_HOME" -fi - -# Use default groovy-conf config -if [ -z "$STARTER_CONF" ]; then - STARTER_CONF="$GRAILS_HOME/conf/groovy-starter.conf" -fi -STARTER_CLASSPATH="wrapper/grails-wrapper-runtime-2.5.2.jar:wrapper:." - -# Allow access to Cocoa classes on OS X -if $darwin; then - STARTER_CLASSPATH="$STARTER_CLASSPATH:/System/Library/Java/Support" -fi - -# Create the final classpath -# Setting a classpath using the -cp or -classpath option means not to use -# the global classpath. Groovy behaves then the same as the java -# interpreter -if [ -n "$CP" ] ; then - CP="$CP" -elif [ -n "$CLASSPATH" ] ; then - CP="$CLASSPATH" -fi - -# Determine the Java command to use to start the JVM -if [ -z "$JAVACMD" ]; then - if [ -n "$JAVA_HOME" ]; then - if [ -x "$JAVA_HOME/jre/sh/java" ]; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +JAR_PATH=$APP_HOME/grails-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" else - JAVACMD="java" + JAVACMD="$JAVA_HOME/bin/java" fi -fi -if [ ! -x "$JAVACMD" ]; then - die "JAVA_HOME is not defined correctly; can not execute: $JAVACMD" -fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME -# Increase the maximum file descriptors if we can -if [ "$cygwin" = "false" ]; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ "$MAX_FD_LIMIT" != "unlimited" ]; then - if [ $? -eq 0 ]; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ]; then - # use the businessSystem max - MAX_FD="$MAX_FD_LIMIT" - fi - - ulimit -n $MAX_FD - if [ $? -ne 0 ]; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query businessSystem maximum file descriptor limit: $MAX_FD_LIMIT" - fi - fi -fi - -# Fix the cygwin agent issue -AGENT_GRAILS_HOME=$GRAILS_HOME -if $cygwin ; then - [ -n "$GRAILS_HOME" ] && - AGENT_GRAILS_HOME=`cygpath --windows "$GRAILS_HOME"` -fi - -if $mingw ; then - # Converts GRAILS_HOME path to Windows syntax - [ -n "$GRAILS_HOME" ] && - AGENT_GRAILS_HOME=`cmd //C echo "$GRAILS_HOME"` -fi +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -if [ -z "$GRAILS_AGENT_CACHE_DIR" ]; then - GRAILS_AGENT_CACHE_DIR=~/.grails/2.5.2/ -fi -SPRINGLOADED_PARAMS=profile=grails\;cacheDir=$GRAILS_AGENT_CACHE_DIR -if [ ! -d "$GRAILS_AGENT_CACHE_DIR" ]; then - mkdir -p "$GRAILS_AGENT_CACHE_DIR" +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." fi -# Process JVM args -AGENT_STRING="-javaagent:wrapper/springloaded-1.2.4.RELEASE.jar -Xverify:none -Dspringloaded.synchronize=true -Djdk.reflect.allowGetCallerClass=true -Dspringloaded=$SPRINGLOADED_PARAMS" -CMD_LINE_ARGS="" -DISABLE_RELOADING=true - -while true; do - if [ "$1" = "-cp" ] || [ "$1" = "-classpath" ]; then - CP=$2 - shift 2 - break - fi - - if [ "$1" = "-reloading" ]; then - AGENT=$AGENT_STRING - DISABLE_RELOADING=false - shift - break - fi - - if [ "$1" = "-noreloading" ]; then - DISABLE_RELOADING=true - shift - break - fi - - if [ "$1" = "-debug" ]; then - JAVA_OPTS="$JAVA_OPTS -Xdebug -Xnoagent -Dgrails.full.stacktrace=true -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005" - shift - break - fi - - if [ "$1" != -* ]; then - break - fi - - CMD_LINE_ARGS="$CMD_LINE_ARGS $1" - shift -done - -# Enable agent-based reloading for the 'run-app' command. -if ! $DISABLE_RELOADING; then - for a in "$@"; do - if [ "$a" = "run-app" ]; then - AGENT=$AGENT_STRING +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" fi - done - - if [ $# = 0 ]; then - AGENT=$AGENT_STRING - fi -fi - -ARGUMENTS="$CMD_LINE_ARGS $@" - -# Setup Profiler -useprofiler=false -if [ "x$PROFILER" != "x" ]; then - if [ -r "$PROFILER" ]; then - . $PROFILER - useprofiler=true else - die "Profiler file not found: $PROFILER" + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" fi fi -# For Darwin, use classes.jar for TOOLS_JAR -TOOLS_JAR="$JAVA_HOME/lib/tools.jar" -if $darwin; then - JAVA_OPTS="-Xdock:name=Grails -Xdock:icon=$GRAILS_HOME/media/icons/grails.icns $JAVA_OPTS" -# TOOLS_JAR="/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Classes/classes.jar" -fi - # For Cygwin, switch paths to Windows format before running java -if $cygwin; then - GRAILS_HOME=`cygpath --path --mixed "$GRAILS_HOME"` - JAVA_HOME=`cygpath --path --mixed "$JAVA_HOME"` - STARTER_CONF=`cygpath --path --mixed "$STARTER_CONF"` - if [ "x$CP" != "x" ] ; then - CP=`cygpath --path --mixed "$CP"` - fi - TOOLS_JAR=`cygpath --path --mixed "$TOOLS_JAR"` - STARTER_CLASSPATH=`cygpath --path --mixed "$STARTER_CLASSPATH"` - # We build the pattern for arguments to be converted via cygpath +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + JAVACMD=`cygpath --unix "$JAVACMD"` + JAR_PATH=`cygpath --path --mixed "$JAR_PATH"` + + # We build the pattern for arguments to be converted via cygpath ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` SEP="" - for dir in $ROOTDIRSRAW; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" done OURCYGPATTERN="(^($ROOTDIRS))" # Add a user-defined pattern to the cygpath arguments - if [ "$GROOVY_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GROOVY_CYGPATTERN)" + if [ "$GRAILS_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRAILS_CYGPATTERN)" fi - # Now convert the arguments - ARGUMENTS="" + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - if [ $CHECK -ne 0 ] ; then - convArg=`cygpath --path --ignore --mixed -- "$arg"` - else - convArg=$arg - fi - ARGUMENTS="$ARGUMENTS $convArg" - done -fi + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option -STARTER_MAIN_CLASS=org.grails.wrapper.GrailsWrapper - -lateInit - -startGrails() { - CLASS=$1 - shift - if [ -n "$GRAILS_OPTS" ] - then - GRAILS_OPTS="$GRAILS_OPTS" - else - GRAILS_OPTS="-server -Xmx768M -Xms64M -Dfile.encoding=UTF-8" - if [ "$GRAILS_NO_PERMGEN" != "1" ]; then - GRAILS_OPTS="$GRAILS_OPTS -XX:PermSize=32m -XX:MaxPermSize=256m" - fi - fi - JAVA_OPTS="$GRAILS_OPTS $JAVA_OPTS $AGENT" - # Start the Profiler or the JVM - if $useprofiler; then - runProfiler - else - if [ $# -eq 0 ] ; then # no argument given - exec "$JAVACMD" $JAVA_OPTS \ - -classpath "$STARTER_CLASSPATH" \ - -Dgrails.home="$GRAILS_HOME" \ - -Dtools.jar="$TOOLS_JAR" \ - -Djava.net.preferIPv4Stack=true \ - $STARTER_MAIN_CLASS \ - --main $CLASS \ - --conf "$STARTER_CONF" \ - --classpath "$CP" - else - exec "$JAVACMD" $JAVA_OPTS \ - -classpath "$STARTER_CLASSPATH" \ - -Dgrails.home="$GRAILS_HOME" \ - -Dtools.jar="$TOOLS_JAR" \ - -Djava.net.preferIPv4Stack=true \ - $STARTER_MAIN_CLASS \ - --main $CLASS \ - --conf "$STARTER_CONF" \ - --classpath "$CP" \ - "${ARGUMENTS}" - fi - fi + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Split up the JVM_OPTS And GRAILS_OPTS values into an array, following the shell quoting and substitution rules +function splitJvmOpts() { + JVM_OPTS=("$@") } +eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRAILS_OPTS -startGrails $STARTER_MAIN_CLASS "$@" +exec "$JAVACMD" -jar "${JVM_OPTS[@]}" "$JAR_PATH" "$@" diff --git a/bbb-lti/grailsw.bat b/bbb-lti/grailsw.bat index 4cc2eb4399..c48c384063 100644 --- a/bbb-lti/grailsw.bat +++ b/bbb-lti/grailsw.bat @@ -1,186 +1,89 @@ -@if "%DEBUG%" == "" @echo off -@rem ########################################################################## -@rem ## -@rem Grails JVM Bootstrap for Windows ## -@rem ## -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set CLASS=org.grails.wrapper.GrailsWrapper - -if exist "%USERPROFILE%/.groovy/preinit.bat" call "%USERPROFILE%/.groovy/preinit.bat" - -@rem Determine the command interpreter to execute the "CD" later -set COMMAND_COM="cmd.exe" -if exist "%SystemRoot%\system32\cmd.exe" set COMMAND_COM="%SystemRoot%\system32\cmd.exe" -if exist "%SystemRoot%\command.com" set COMMAND_COM="%SystemRoot%\command.com" - -@rem Use explicit find.exe to prevent cygwin and others find.exe from being used -set FIND_EXE="find.exe" -if exist "%SystemRoot%\system32\find.exe" set FIND_EXE="%SystemRoot%\system32\find.exe" -if exist "%SystemRoot%\command\find.exe" set FIND_EXE="%SystemRoot%\command\find.exe" - -:check_JAVA_HOME -@rem Make sure we have a valid JAVA_HOME -if not "%JAVA_HOME%" == "" goto have_JAVA_HOME - -echo. -echo ERROR: Environment variable JAVA_HOME has not been set. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. -echo. -goto end - -:have_JAVA_HOME -@rem Remove trailing slash from JAVA_HOME if found -if "%JAVA_HOME:~-1%"=="\" SET JAVA_HOME=%JAVA_HOME:~0,-1% - -@rem Validate JAVA_HOME -%COMMAND_COM% /C DIR "%JAVA_HOME%" 2>&1 | %FIND_EXE% /I /C "%JAVA_HOME%" >nul -if not errorlevel 1 goto check_GRAILS_HOME - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. -echo. -goto end - -:check_GRAILS_HOME -@rem Define GRAILS_HOME if not set -if "%GRAILS_HOME%" == "" set GRAILS_HOME=%DIRNAME%.. - -@rem Remove trailing slash from GRAILS_HOME if found -if "%GRAILS_HOME:~-1%"=="\" SET GRAILS_HOME=%GRAILS_HOME:~0,-1% - -:init - -for %%x in ("%USERPROFILE%") do set SHORTHOME=%%~fsx -if "x%GRAILS_AGENT_CACHE_DIR%" == "x" set GRAILS_AGENT_CACHE_DIR=%SHORTHOME%/.grails/2.5.2/ -set SPRINGLOADED_PARAMS="profile=grails;cacheDir=%GRAILS_AGENT_CACHE_DIR%" -if not exist "%GRAILS_AGENT_CACHE_DIR%" mkdir "%GRAILS_AGENT_CACHE_DIR%" - -if "%GRAILS_NO_PERMGEN%" == "" ( - type "%JAVA_HOME%\include\classfile_constants.h" 2>nul | findstr /R /C:"#define JVM_CLASSFILE_MAJOR_VERSION 5[23]" >nul - if not errorlevel 1 set GRAILS_NO_PERMGEN=1 -) - -set AGENT_STRING=-javaagent:wrapper/springloaded-1.2.4.RELEASE.jar -Xverify:none -Dspringloaded.synchronize=true -Djdk.reflect.allowGetCallerClass=true -Dspringloaded=\"%SPRINGLOADED_PARAMS%\" -set DISABLE_RELOADING= -if "%GRAILS_OPTS%" == "" ( - set GRAILS_OPTS=-server -Xmx768M -Xms64M -Dfile.encoding=UTF-8 - if not "%GRAILS_NO_PERMGEN%" == "1" ( - set GRAILS_OPTS=-server -Xmx768M -Xms64M -XX:PermSize=32m -XX:MaxPermSize=256m -Dfile.encoding=UTF-8 - ) -) - -@rem Get command-line arguments, handling Windows variants -if "%@eval[2+2]" == "4" goto 4NT_args - -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set CP= -set INTERACTIVE=true - -:win9xME_args_slurp -if "x%~1" == "x" goto execute -set CURR_ARG=%~1 -if "%CURR_ARG:~0,2%" == "-D" ( - set CMD_LINE_ARGS=%CMD_LINE_ARGS% %~1=%~2 - shift - shift - goto win9xME_args_slurp -) -if "x%~1" == "x-cp" ( - set CP=%~2 - shift - shift - goto win9xME_args_slurp -) -if "x%~1" == "x-debug" ( - set JAVA_OPTS=%JAVA_OPTS% -Xdebug -Xnoagent -Dgrails.full.stacktrace=true -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005 - shift - goto win9xME_args_slurp -) -if "x%~1" == "x-classpath" ( - set CP=%~2 - shift - shift - goto win9xME_args_slurp -) -if "x%~1" == "x-reloading" ( - set AGENT=%AGENT_STRING% - shift - goto win9xME_args_slurp -) -if "x%~1" == "xrun-app" ( - set AGENT=%AGENT_STRING% - set INTERACTIVE= - set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1 - shift - goto win9xME_args_slurp -) -if "x%~1" == "x-noreloading" ( - set DISABLE_RELOADING=true - shift - goto win9xME_args_slurp -) -set INTERACTIVE= -set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1 -shift -goto win9xME_args_slurp - -:4NT_args -@rem Get arguments from the 4NT Shell from JP Software -set CMD_LINE_ARGS=%$ - -:execute -@rem Setup the command line -set STARTER_CLASSPATH=wrapper/grails-wrapper-runtime-2.5.2.jar;wrapper;. - -if exist "%USERPROFILE%/.groovy/init.bat" call "%USERPROFILE%/.groovy/init.bat" - -@rem Setting a classpath using the -cp or -classpath option means not to use -@rem the global classpath. Groovy behaves then the same as the java interpreter - -if "x" == "x%CLASSPATH%" goto after_classpath -set CP=%CP%;%CLASSPATH% -:after_classpath - -if "x%DISABLE_RELOADING%" == "xtrue" ( - set AGENT= -) else ( - if "x%INTERACTIVE%" == "xtrue" ( - set AGENT=%AGENT_STRING% - ) -) - -set STARTER_MAIN_CLASS=org.grails.wrapper.GrailsWrapper -set STARTER_CONF=%GRAILS_HOME%\conf\groovy-starter.conf - -set JAVA_EXE=%JAVA_HOME%\bin\java.exe -set TOOLS_JAR=%JAVA_HOME%\lib\tools.jar - -set JAVA_OPTS=%GRAILS_OPTS% %JAVA_OPTS% %AGENT% - -set JAVA_OPTS=%JAVA_OPTS% -Dprogram.name="%PROGNAME%" -set JAVA_OPTS=%JAVA_OPTS% -Dgrails.home="%GRAILS_HOME%" -set JAVA_OPTS=%JAVA_OPTS% -Dgrails.version=2.5.2 -set JAVA_OPTS=%JAVA_OPTS% -Dbase.dir=. -set JAVA_OPTS=%JAVA_OPTS% -Dtools.jar="%TOOLS_JAR%" -set JAVA_OPTS=%JAVA_OPTS% -Dgroovy.starter.conf="%STARTER_CONF%" - -if exist "%USERPROFILE%/.groovy/postinit.bat" call "%USERPROFILE%/.groovy/postinit.bat" - -@rem Execute Grails -CALL "%JAVA_EXE%" %JAVA_OPTS% -classpath "%STARTER_CLASSPATH%" %STARTER_MAIN_CLASS% --main %CLASS% --conf "%STARTER_CONF%" --classpath "%CP%" "%CMD_LINE_ARGS%" -:end -@rem End local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" endlocal - -@rem Optional pause the batch file -if "%GROOVY_BATCH_PAUSE%" == "on" pause +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Grails startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRAILS_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-XX:+TieredCompilation" "-XX:TieredStopAtLevel=1" "-XX:CICompilerCount=3" + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windowz variants + +if not "%OS%" == "Windows_NT" goto win9xME_args +if "%@eval[2+2]" == "4" goto 4NT_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* +goto execute + +:4NT_args +@rem Get arguments from the 4NT Shell from JP Software +set CMD_LINE_ARGS=%$ + +:execute +@rem Setup the command line +set JAR_PATH=%APP_HOME%/grails-wrapper.jar + +@rem Execute Grails +"%JAVA_EXE%" -jar %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRAILS_OPTS% %JAR_PATH% %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRAILS_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRAILS_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/bbb-lti/src/java/org/bigbluebutton/api/Proxy.java b/bbb-lti/src/main/groovy/org/bigbluebutton/api/Proxy.java similarity index 100% rename from bbb-lti/src/java/org/bigbluebutton/api/Proxy.java rename to bbb-lti/src/main/groovy/org/bigbluebutton/api/Proxy.java diff --git a/bbb-lti/src/java/org/bigbluebutton/lti/Parameter.java b/bbb-lti/src/main/groovy/org/bigbluebutton/lti/Parameter.java similarity index 100% rename from bbb-lti/src/java/org/bigbluebutton/lti/Parameter.java rename to bbb-lti/src/main/groovy/org/bigbluebutton/lti/Parameter.java diff --git a/bbb-lti/src/java/org/bigbluebutton/lti/Role.java b/bbb-lti/src/main/groovy/org/bigbluebutton/lti/Role.java similarity index 100% rename from bbb-lti/src/java/org/bigbluebutton/lti/Role.java rename to bbb-lti/src/main/groovy/org/bigbluebutton/lti/Role.java diff --git a/bbb-lti/src/java/org/imsglobal/basiclti/Base64.java b/bbb-lti/src/main/groovy/org/imsglobal/basiclti/Base64.java similarity index 100% rename from bbb-lti/src/java/org/imsglobal/basiclti/Base64.java rename to bbb-lti/src/main/groovy/org/imsglobal/basiclti/Base64.java diff --git a/bbb-lti/src/java/org/imsglobal/basiclti/BasicLTIConstants.java b/bbb-lti/src/main/groovy/org/imsglobal/basiclti/BasicLTIConstants.java similarity index 100% rename from bbb-lti/src/java/org/imsglobal/basiclti/BasicLTIConstants.java rename to bbb-lti/src/main/groovy/org/imsglobal/basiclti/BasicLTIConstants.java diff --git a/bbb-lti/src/java/org/imsglobal/basiclti/BasicLTIUtil.java b/bbb-lti/src/main/groovy/org/imsglobal/basiclti/BasicLTIUtil.java similarity index 100% rename from bbb-lti/src/java/org/imsglobal/basiclti/BasicLTIUtil.java rename to bbb-lti/src/main/groovy/org/imsglobal/basiclti/BasicLTIUtil.java diff --git a/bbb-lti/src/java/org/imsglobal/basiclti/XMLMap.java b/bbb-lti/src/main/groovy/org/imsglobal/basiclti/XMLMap.java similarity index 100% rename from bbb-lti/src/java/org/imsglobal/basiclti/XMLMap.java rename to bbb-lti/src/main/groovy/org/imsglobal/basiclti/XMLMap.java diff --git a/bbb-lti/src/java/org/imsglobal/json/IMSJSONRequest.java b/bbb-lti/src/main/groovy/org/imsglobal/json/IMSJSONRequest.java similarity index 100% rename from bbb-lti/src/java/org/imsglobal/json/IMSJSONRequest.java rename to bbb-lti/src/main/groovy/org/imsglobal/json/IMSJSONRequest.java diff --git a/bbb-lti/src/java/org/imsglobal/pox/IMSPOXRequest.java b/bbb-lti/src/main/groovy/org/imsglobal/pox/IMSPOXRequest.java similarity index 100% rename from bbb-lti/src/java/org/imsglobal/pox/IMSPOXRequest.java rename to bbb-lti/src/main/groovy/org/imsglobal/pox/IMSPOXRequest.java diff --git a/bbb-lti/web-app/fonts/glyphicons-halflings-regular.eot b/bbb-lti/src/main/webapp/fonts/glyphicons-halflings-regular.eot similarity index 100% rename from bbb-lti/web-app/fonts/glyphicons-halflings-regular.eot rename to bbb-lti/src/main/webapp/fonts/glyphicons-halflings-regular.eot diff --git a/bbb-lti/web-app/fonts/glyphicons-halflings-regular.svg b/bbb-lti/src/main/webapp/fonts/glyphicons-halflings-regular.svg similarity index 100% rename from bbb-lti/web-app/fonts/glyphicons-halflings-regular.svg rename to bbb-lti/src/main/webapp/fonts/glyphicons-halflings-regular.svg diff --git a/bbb-lti/web-app/fonts/glyphicons-halflings-regular.ttf b/bbb-lti/src/main/webapp/fonts/glyphicons-halflings-regular.ttf similarity index 100% rename from bbb-lti/web-app/fonts/glyphicons-halflings-regular.ttf rename to bbb-lti/src/main/webapp/fonts/glyphicons-halflings-regular.ttf diff --git a/bbb-lti/web-app/fonts/glyphicons-halflings-regular.woff b/bbb-lti/src/main/webapp/fonts/glyphicons-halflings-regular.woff similarity index 100% rename from bbb-lti/web-app/fonts/glyphicons-halflings-regular.woff rename to bbb-lti/src/main/webapp/fonts/glyphicons-halflings-regular.woff diff --git a/bbb-lti/web-app/images/icon.ico b/bbb-lti/src/main/webapp/images/icon.ico similarity index 100% rename from bbb-lti/web-app/images/icon.ico rename to bbb-lti/src/main/webapp/images/icon.ico diff --git a/bbb-lti/web-app/WEB-INF/tld/c.tld b/bbb-lti/src/main/webapp/tld/c.tld similarity index 100% rename from bbb-lti/web-app/WEB-INF/tld/c.tld rename to bbb-lti/src/main/webapp/tld/c.tld diff --git a/bbb-lti/web-app/WEB-INF/tld/fmt.tld b/bbb-lti/src/main/webapp/tld/fmt.tld similarity index 100% rename from bbb-lti/web-app/WEB-INF/tld/fmt.tld rename to bbb-lti/src/main/webapp/tld/fmt.tld diff --git a/bbb-lti/web-app/WEB-INF/tld/grails.tld b/bbb-lti/src/main/webapp/tld/grails.tld similarity index 90% rename from bbb-lti/web-app/WEB-INF/tld/grails.tld rename to bbb-lti/src/main/webapp/tld/grails.tld index 9bd036b8ce..efc2163e8f 100644 --- a/bbb-lti/web-app/WEB-INF/tld/grails.tld +++ b/bbb-lti/src/main/webapp/tld/grails.tld @@ -1,550 +1,550 @@ -<?xml version="1.0" encoding="UTF-8"?> -<taglib xmlns="http://java.sun.com/xml/ns/j2ee" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee - http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" - version="2.0"> - <description>The Grails custom tag library</description> - <tlib-version>0.2</tlib-version> - <short-name>grails</short-name> - <uri>http://grails.codehaus.org/tags</uri> - - <tag> - <name>link</name> - <tag-class>org.codehaus.groovy.grails.web.taglib.jsp.JspLinkTag</tag-class> - <body-content>JSP</body-content> - <attribute> - <name>action</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>controller</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>id</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>url</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>params</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <dynamic-attributes>true</dynamic-attributes> - </tag> - <tag> - <name>form</name> - <tag-class>org.codehaus.groovy.grails.web.taglib.jsp.JspFormTag</tag-class> - <body-content>JSP</body-content> - <attribute> - <name>action</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>controller</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>id</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>url</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>method</name> - <required>true</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <dynamic-attributes>true</dynamic-attributes> - </tag> - <tag> - <name>select</name> - <tag-class>org.codehaus.groovy.grails.web.taglib.jsp.JspSelectTag</tag-class> - <body-content>JSP</body-content> - <attribute> - <name>name</name> - <required>true</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>value</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>optionKey</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>optionValue</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <dynamic-attributes>true</dynamic-attributes> - </tag> - <tag> - <name>datePicker</name> - <tag-class>org.codehaus.groovy.grails.web.taglib.jsp.JspDatePickerTag</tag-class> - <body-content>empty</body-content> - <attribute> - <name>name</name> - <required>true</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>value</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>precision</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <dynamic-attributes>false</dynamic-attributes> - </tag> - <tag> - <name>currencySelect</name> - <tag-class>org.codehaus.groovy.grails.web.taglib.jsp.JspCurrencySelectTag</tag-class> - <body-content>empty</body-content> - <attribute> - <name>name</name> - <required>true</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>value</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <dynamic-attributes>true</dynamic-attributes> - </tag> - <tag> - <name>localeSelect</name> - <tag-class>org.codehaus.groovy.grails.web.taglib.jsp.JspLocaleSelectTag</tag-class> - <body-content>empty</body-content> - <attribute> - <name>name</name> - <required>true</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>value</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <dynamic-attributes>true</dynamic-attributes> - </tag> - <tag> - <name>timeZoneSelect</name> - <tag-class>org.codehaus.groovy.grails.web.taglib.jsp.JspTimeZoneSelectTag</tag-class> - <body-content>empty</body-content> - <attribute> - <name>name</name> - <required>true</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>value</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <dynamic-attributes>true</dynamic-attributes> - </tag> - <tag> - <name>checkBox</name> - <tag-class>org.codehaus.groovy.grails.web.taglib.jsp.JspCheckboxTag</tag-class> - <body-content>empty</body-content> - <attribute> - <name>name</name> - <required>true</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>value</name> - <required>true</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <dynamic-attributes>true</dynamic-attributes> - </tag> - <tag> - <name>hasErrors</name> - <tag-class>org.codehaus.groovy.grails.web.taglib.jsp.JspHasErrorsTag</tag-class> - <body-content>JSP</body-content> - <attribute> - <name>model</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>bean</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>field</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <dynamic-attributes>false</dynamic-attributes> - </tag> - <tag> - <name>eachError</name> - <tag-class>org.codehaus.groovy.grails.web.taglib.jsp.JspEachErrorTag</tag-class> - <body-content>JSP</body-content> - <attribute> - <name>model</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>bean</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>field</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <dynamic-attributes>false</dynamic-attributes> - </tag> - <tag> - <name>renderErrors</name> - <tag-class>org.codehaus.groovy.grails.web.taglib.jsp.JspEachErrorTag</tag-class> - <body-content>JSP</body-content> - <attribute> - <name>model</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>bean</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>field</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>as</name> - <required>true</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <dynamic-attributes>false</dynamic-attributes> - </tag> - <tag> - <name>message</name> - <tag-class>org.codehaus.groovy.grails.web.taglib.jsp.JspMessageTag</tag-class> - <body-content>JSP</body-content> - <attribute> - <name>code</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>error</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>default</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <dynamic-attributes>false</dynamic-attributes> - </tag> - <tag> - <name>remoteFunction</name> - <tag-class>org.codehaus.groovy.grails.web.taglib.jsp.JspRemoteFunctionTag</tag-class> - <body-content>empty</body-content> - <attribute> - <name>before</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>after</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>action</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>controller</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>id</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>url</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>params</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>asynchronous</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>method</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>update</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>onSuccess</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>onFailure</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>onComplete</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>onLoading</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>onLoaded</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>onInteractive</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <dynamic-attributes>true</dynamic-attributes> - </tag> - <tag> - <name>remoteLink</name> - <tag-class>org.codehaus.groovy.grails.web.taglib.jsp.JspRemoteLinkTag</tag-class> - <body-content>JSP</body-content> - <attribute> - <name>before</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>after</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>action</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>controller</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>id</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>url</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>params</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>asynchronous</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>method</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>update</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>onSuccess</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>onFailure</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>onComplete</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>onLoading</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>onLoaded</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>onInteractive</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <dynamic-attributes>true</dynamic-attributes> - </tag> - <tag> - <name>formRemote</name> - <tag-class>org.codehaus.groovy.grails.web.taglib.jsp.JspFormRemoteTag</tag-class> - <body-content>JSP</body-content> - <attribute> - <name>before</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>after</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>action</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>controller</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>id</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>url</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>params</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>asynchronous</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>method</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>update</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>onSuccess</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>onFailure</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>onComplete</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>onLoading</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>onLoaded</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <name>onInteractive</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <dynamic-attributes>true</dynamic-attributes> - </tag> - <tag> - <name>invokeTag</name> - <tag-class>org.codehaus.groovy.grails.web.taglib.jsp.JspInvokeGrailsTagLibTag</tag-class> - <body-content>JSP</body-content> - <variable> - <name-given>it</name-given> - <variable-class>java.lang.Object</variable-class> - <declare>true</declare> - <scope>NESTED</scope> - </variable> - <attribute> - <name>tagName</name> - <required>true</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <dynamic-attributes>true</dynamic-attributes> - </tag> -</taglib> - +<?xml version="1.0" encoding="UTF-8"?> +<taglib xmlns="http://java.sun.com/xml/ns/j2ee" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee + http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" + version="2.0"> + <description>The Grails custom tag library</description> + <tlib-version>0.2</tlib-version> + <short-name>grails</short-name> + <uri>http://grails.codehaus.org/tags</uri> + + <tag> + <name>link</name> + <tag-class>org.grails.web.taglib.jsp.JspLinkTag</tag-class> + <body-content>JSP</body-content> + <attribute> + <name>action</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>controller</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>id</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>url</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>params</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <dynamic-attributes>true</dynamic-attributes> + </tag> + <tag> + <name>form</name> + <tag-class>org.grails.web.taglib.jsp.JspFormTag</tag-class> + <body-content>JSP</body-content> + <attribute> + <name>action</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>controller</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>id</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>url</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>method</name> + <required>true</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <dynamic-attributes>true</dynamic-attributes> + </tag> + <tag> + <name>select</name> + <tag-class>org.grails.web.taglib.jsp.JspSelectTag</tag-class> + <body-content>JSP</body-content> + <attribute> + <name>name</name> + <required>true</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>value</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>optionKey</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>optionValue</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <dynamic-attributes>true</dynamic-attributes> + </tag> + <tag> + <name>datePicker</name> + <tag-class>org.grails.web.taglib.jsp.JspDatePickerTag</tag-class> + <body-content>empty</body-content> + <attribute> + <name>name</name> + <required>true</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>value</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>precision</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <dynamic-attributes>false</dynamic-attributes> + </tag> + <tag> + <name>currencySelect</name> + <tag-class>org.grails.web.taglib.jsp.JspCurrencySelectTag</tag-class> + <body-content>empty</body-content> + <attribute> + <name>name</name> + <required>true</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>value</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <dynamic-attributes>true</dynamic-attributes> + </tag> + <tag> + <name>localeSelect</name> + <tag-class>org.grails.web.taglib.jsp.JspLocaleSelectTag</tag-class> + <body-content>empty</body-content> + <attribute> + <name>name</name> + <required>true</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>value</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <dynamic-attributes>true</dynamic-attributes> + </tag> + <tag> + <name>timeZoneSelect</name> + <tag-class>org.grails.web.taglib.jsp.JspTimeZoneSelectTag</tag-class> + <body-content>empty</body-content> + <attribute> + <name>name</name> + <required>true</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>value</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <dynamic-attributes>true</dynamic-attributes> + </tag> + <tag> + <name>checkBox</name> + <tag-class>org.grails.web.taglib.jsp.JspCheckboxTag</tag-class> + <body-content>empty</body-content> + <attribute> + <name>name</name> + <required>true</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>value</name> + <required>true</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <dynamic-attributes>true</dynamic-attributes> + </tag> + <tag> + <name>hasErrors</name> + <tag-class>org.grails.web.taglib.jsp.JspHasErrorsTag</tag-class> + <body-content>JSP</body-content> + <attribute> + <name>model</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>bean</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>field</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <dynamic-attributes>false</dynamic-attributes> + </tag> + <tag> + <name>eachError</name> + <tag-class>org.grails.web.taglib.jsp.JspEachErrorTag</tag-class> + <body-content>JSP</body-content> + <attribute> + <name>model</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>bean</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>field</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <dynamic-attributes>false</dynamic-attributes> + </tag> + <tag> + <name>renderErrors</name> + <tag-class>org.grails.web.taglib.jsp.JspEachErrorTag</tag-class> + <body-content>JSP</body-content> + <attribute> + <name>model</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>bean</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>field</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>as</name> + <required>true</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <dynamic-attributes>false</dynamic-attributes> + </tag> + <tag> + <name>message</name> + <tag-class>org.grails.web.taglib.jsp.JspMessageTag</tag-class> + <body-content>JSP</body-content> + <attribute> + <name>code</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>error</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>default</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <dynamic-attributes>false</dynamic-attributes> + </tag> + <tag> + <name>remoteFunction</name> + <tag-class>org.grails.web.taglib.jsp.JspRemoteFunctionTag</tag-class> + <body-content>empty</body-content> + <attribute> + <name>before</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>after</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>action</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>controller</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>id</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>url</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>params</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>asynchronous</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>method</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>update</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>onSuccess</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>onFailure</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>onComplete</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>onLoading</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>onLoaded</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>onInteractive</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <dynamic-attributes>true</dynamic-attributes> + </tag> + <tag> + <name>remoteLink</name> + <tag-class>org.grails.web.taglib.jsp.JspRemoteLinkTag</tag-class> + <body-content>JSP</body-content> + <attribute> + <name>before</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>after</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>action</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>controller</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>id</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>url</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>params</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>asynchronous</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>method</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>update</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>onSuccess</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>onFailure</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>onComplete</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>onLoading</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>onLoaded</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>onInteractive</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <dynamic-attributes>true</dynamic-attributes> + </tag> + <tag> + <name>formRemote</name> + <tag-class>org.grails.web.taglib.jsp.JspFormRemoteTag</tag-class> + <body-content>JSP</body-content> + <attribute> + <name>before</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>after</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>action</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>controller</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>id</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>url</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>params</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>asynchronous</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>method</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>update</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>onSuccess</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>onFailure</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>onComplete</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>onLoading</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>onLoaded</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>onInteractive</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <dynamic-attributes>true</dynamic-attributes> + </tag> + <tag> + <name>invokeTag</name> + <tag-class>org.grails.web.taglib.jsp.JspInvokeGrailsTagLibTag</tag-class> + <body-content>JSP</body-content> + <variable> + <name-given>it</name-given> + <variable-class>java.lang.Object</variable-class> + <declare>true</declare> + <scope>NESTED</scope> + </variable> + <attribute> + <name>tagName</name> + <required>true</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <dynamic-attributes>true</dynamic-attributes> + </tag> +</taglib> + diff --git a/bbb-lti/web-app/WEB-INF/tld/spring-form.tld b/bbb-lti/src/main/webapp/tld/spring-form.tld similarity index 96% rename from bbb-lti/web-app/WEB-INF/tld/spring-form.tld rename to bbb-lti/src/main/webapp/tld/spring-form.tld index 1520a68604..152e64f635 100644 --- a/bbb-lti/web-app/WEB-INF/tld/spring-form.tld +++ b/bbb-lti/src/main/webapp/tld/spring-form.tld @@ -1,2411 +1,2411 @@ -<?xml version="1.0" encoding="UTF-8"?> -<taglib xmlns="http://java.sun.com/xml/ns/j2ee" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" - version="2.0"> - - <description>Spring Framework JSP Form Tag Library</description> - <tlib-version>3.0</tlib-version> - <short-name>form</short-name> - <uri>http://www.springframework.org/tags/form</uri> - - <tag> - <description>Renders an HTML 'form' tag and exposes a binding path to inner tags for binding.</description> - <name>form</name> - <tag-class>org.springframework.web.servlet.tags.form.FormTag</tag-class> - <body-content>JSP</body-content> - <attribute> - <description>HTML Standard Attribute</description> - <name>id</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute - added for backwards compatibility cases</description> - <name>name</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Enable/disable HTML escaping of rendered values.</description> - <name>htmlEscape</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Equivalent to "class" - HTML Optional Attribute</description> - <name>cssClass</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Equivalent to "style" - HTML Optional Attribute</description> - <name>cssStyle</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>lang</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>title</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>dir</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onclick</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>ondblclick</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmousedown</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmouseup</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmouseover</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmousemove</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmouseout</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onkeypress</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onkeyup</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onkeydown</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Name of the model attribute under which the form object is exposed. - Defaults to 'command'.</description> - <name>modelAttribute</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Name of the model attribute under which the form object is exposed. - Defaults to 'command'.</description> - <name>commandName</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Required Attribute</description> - <name>action</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Optional Attribute</description> - <name>method</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Optional Attribute</description> - <name>target</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Optional Attribute</description> - <name>enctype</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Specifies the list of character encodings for input data that is accepted by the server processing this form. The value is a space- and/or comma-delimited list of charset values. The client must interpret this list as an exclusive-or list, i.e., the server is able to accept any single character encoding per entity received.</description> - <name>acceptCharset</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onsubmit</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onreset</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Common Optional Attribute</description> - <name>autocomplete</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>The parameter name used for HTTP methods other then GET and POST. Default is '_method'</description> - <name>methodParam</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <dynamic-attributes>true</dynamic-attributes> - </tag> - - <tag> - <description>Renders an HTML 'input' tag with type 'text' using the bound value.</description> - <name>input</name> - <tag-class>org.springframework.web.servlet.tags.form.InputTag</tag-class> - <body-content>empty</body-content> - <attribute> - <description>Path to property for data binding</description> - <name>path</name> - <required>true</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>id</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Enable/disable HTML escaping of rendered values.</description> - <name>htmlEscape</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Equivalent to "class" - HTML Optional Attribute</description> - <name>cssClass</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Equivalent to "class" - HTML Optional Attribute. Used when the bound field has errors.</description> - <name>cssErrorClass</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Equivalent to "style" - HTML Optional Attribute</description> - <name>cssStyle</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>lang</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>title</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>dir</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>tabindex</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Optional Attribute. Setting the value of this attribute to 'true' (without the quotes) will disable the HTML element.</description> - <name>disabled</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onclick</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>ondblclick</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmousedown</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmouseup</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmouseover</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmousemove</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmouseout</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onkeypress</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onkeyup</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onkeydown</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onfocus</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onblur</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onchange</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>accesskey</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Optional Attribute</description> - <name>size</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Optional Attribute</description> - <name>maxlength</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Optional Attribute</description> - <name>alt</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onselect</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Optional Attribute. Setting the value of this attribute to 'true' (without the quotes) will make the HTML element readonly.</description> - <name>readonly</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Common Optional Attribute</description> - <name>autocomplete</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <dynamic-attributes>true</dynamic-attributes> - </tag> - - <tag> - <description>Renders an HTML 'input' tag with type 'password' using the bound value.</description> - <name>password</name> - <tag-class>org.springframework.web.servlet.tags.form.PasswordInputTag</tag-class> - <body-content>empty</body-content> - <attribute> - <description>Path to property for data binding</description> - <name>path</name> - <required>true</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>id</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Enable/disable HTML escaping of rendered values.</description> - <name>htmlEscape</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Equivalent to "class" - HTML Optional Attribute</description> - <name>cssClass</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Equivalent to "class" - HTML Optional Attribute. Used when the bound field has errors.</description> - <name>cssErrorClass</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Equivalent to "style" - HTML Optional Attribute</description> - <name>cssStyle</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>lang</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>title</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>dir</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>tabindex</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Optional Attribute. Setting the value of this attribute to 'true' (without the quotes) will disable the HTML element.</description> - <name>disabled</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onclick</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>ondblclick</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmousedown</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmouseup</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmouseover</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmousemove</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmouseout</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onkeypress</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onkeyup</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onkeydown</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onfocus</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onblur</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onchange</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>accesskey</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Optional Attribute</description> - <name>size</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Optional Attribute</description> - <name>maxlength</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Optional Attribute</description> - <name>alt</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onselect</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Optional Attribute. Setting the value of this attribute to 'true' (without the quotes) will make the HTML element readonly.</description> - <name>readonly</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Common Optional Attribute</description> - <name>autocomplete</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Is the password value to be shown? Defaults to false.</description> - <name>showPassword</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <dynamic-attributes>true</dynamic-attributes> - </tag> - - <tag> - <description>Renders an HTML 'input' tag with type 'hidden' using the bound value.</description> - <name>hidden</name> - <tag-class>org.springframework.web.servlet.tags.form.HiddenInputTag</tag-class> - <body-content>empty</body-content> - <attribute> - <description>Path to property for data binding</description> - <name>path</name> - <required>true</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>id</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Enable/disable HTML escaping of rendered values.</description> - <name>htmlEscape</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Equivalent to "class" - HTML Optional Attribute</description> - <name>cssClass</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Equivalent to "class" - HTML Optional Attribute. Used when the bound field has errors.</description> - <name>cssErrorClass</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Equivalent to "style" - HTML Optional Attribute</description> - <name>cssStyle</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>lang</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>title</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>dir</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>tabindex</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Optional Attribute. Setting the value of this attribute to 'true' (without the quotes) will disable the HTML element.</description> - <name>disabled</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onclick</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>ondblclick</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmousedown</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmouseup</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmouseover</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmousemove</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmouseout</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onkeypress</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onkeyup</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onkeydown</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <dynamic-attributes>true</dynamic-attributes> - </tag> - - <tag> - <description>Renders an HTML 'select' element. Supports databinding to the selected option.</description> - <name>select</name> - <tag-class>org.springframework.web.servlet.tags.form.SelectTag</tag-class> - <body-content>JSP</body-content> - <attribute> - <description>Path to property for data binding</description> - <name>path</name> - <required>true</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>id</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Enable/disable HTML escaping of rendered values.</description> - <name>htmlEscape</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Equivalent to "class" - HTML Optional Attribute</description> - <name>cssClass</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Equivalent to "class" - HTML Optional Attribute. Used when the bound field has errors.</description> - <name>cssErrorClass</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Equivalent to "style" - HTML Optional Attribute</description> - <name>cssStyle</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>lang</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>title</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>dir</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>tabindex</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Optional Attribute. Setting the value of this attribute to 'true' (without the quotes) will disable the HTML element.</description> - <name>disabled</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onclick</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>ondblclick</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmousedown</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmouseup</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmouseover</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmousemove</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmouseout</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onkeypress</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onkeyup</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onkeydown</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onfocus</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onblur</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onchange</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>accesskey</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>The Collection, Map or array of objects used to generate the inner 'option' tags</description> - <name>items</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Name of the property mapped to 'value' attribute of the 'option' tag</description> - <name>itemValue</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Name of the property mapped to the inner text of the 'option' tag</description> - <name>itemLabel</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Optional Attribute</description> - <name>size</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Optional Attribute</description> - <name>multiple</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <dynamic-attributes>true</dynamic-attributes> - </tag> - - <tag> - <description>Renders a single HTML 'option'. Sets 'selected' as appropriate based on bound value.</description> - <name>option</name> - <tag-class>org.springframework.web.servlet.tags.form.OptionTag</tag-class> - <body-content>JSP</body-content> - <variable> - <description>The actual value bound to the 'value' attribute</description> - <name-given>value</name-given> - <variable-class>java.lang.Object</variable-class> - </variable> - <variable> - <description>The String representation of thr value bound to the 'value' attribute, taking into consideration - any PropertyEditor associated with the enclosing 'select' tag.</description> - <name-given>displayValue</name-given> - <variable-class>java.lang.String</variable-class> - </variable> - <attribute> - <description>HTML Standard Attribute</description> - <name>id</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Optional Attribute</description> - <name>value</name> - <required>true</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Optional Attribute</description> - <name>label</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Enable/disable HTML escaping of rendered values.</description> - <name>htmlEscape</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Equivalent to "class" - HTML Optional Attribute</description> - <name>cssClass</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Equivalent to "class" - HTML Optional Attribute. Used when the bound field has errors.</description> - <name>cssErrorClass</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Equivalent to "style" - HTML Optional Attribute</description> - <name>cssStyle</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>lang</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>title</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>dir</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>tabindex</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Optional Attribute. Setting the value of this attribute to 'true' (without the quotes) will disable the HTML element.</description> - <name>disabled</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onclick</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>ondblclick</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmousedown</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmouseup</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmouseover</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmousemove</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmouseout</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onkeypress</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onkeyup</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onkeydown</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <dynamic-attributes>true</dynamic-attributes> - </tag> - - <tag> - <description>Renders a list of HTML 'option' tags. Sets 'selected' as appropriate based on bound value.</description> - <name>options</name> - <tag-class>org.springframework.web.servlet.tags.form.OptionsTag</tag-class> - <body-content>empty</body-content> - <attribute> - <description>HTML Standard Attribute</description> - <name>id</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>The Collection, Map or array of objects used to generate the inner 'option' tags. This attribute is required unless the containing select's property for data binding is an Enum, in which case the enum's values are used.</description> - <name>items</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Name of the property mapped to 'value' attribute of the 'option' tag</description> - <name>itemValue</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Name of the property mapped to the inner text of the 'option' tag</description> - <name>itemLabel</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Enable/disable HTML escaping of rendered values.</description> - <name>htmlEscape</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Equivalent to "class" - HTML Optional Attribute</description> - <name>cssClass</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Equivalent to "class" - HTML Optional Attribute. Used when the bound field has errors.</description> - <name>cssErrorClass</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Equivalent to "style" - HTML Optional Attribute</description> - <name>cssStyle</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>lang</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>title</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>dir</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>tabindex</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Optional Attribute. Setting the value of this attribute to 'true' (without the quotes) will disable the HTML element.</description> - <name>disabled</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onclick</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>ondblclick</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmousedown</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmouseup</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmouseover</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmousemove</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmouseout</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onkeypress</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onkeyup</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onkeydown</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <dynamic-attributes>true</dynamic-attributes> - </tag> - - <tag> - <description>Renders an HTML 'input' tag with type 'radio'.</description> - <name>radiobutton</name> - <tag-class>org.springframework.web.servlet.tags.form.RadioButtonTag</tag-class> - <body-content>empty</body-content> - <attribute> - <description>Path to property for data binding</description> - <name>path</name> - <required>true</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>id</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Enable/disable HTML escaping of rendered values.</description> - <name>htmlEscape</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Equivalent to "class" - HTML Optional Attribute</description> - <name>cssClass</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Equivalent to "class" - HTML Optional Attribute. Used when the bound field has errors.</description> - <name>cssErrorClass</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Equivalent to "style" - HTML Optional Attribute</description> - <name>cssStyle</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>lang</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>title</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>dir</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>tabindex</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Optional Attribute. Setting the value of this attribute to 'true' (without the quotes) will disable the HTML element.</description> - <name>disabled</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onclick</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>ondblclick</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmousedown</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmouseup</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmouseover</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmousemove</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmouseout</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onkeypress</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onkeyup</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onkeydown</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onfocus</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onblur</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onchange</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>accesskey</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Optional Attribute</description> - <name>value</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Value to be displayed as part of the tag</description> - <name>label</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <dynamic-attributes>true</dynamic-attributes> - </tag> - - <tag> - <description>Renders multiple HTML 'input' tags with type 'radio'.</description> - <name>radiobuttons</name> - <tag-class>org.springframework.web.servlet.tags.form.RadioButtonsTag</tag-class> - <body-content>empty</body-content> - <attribute> - <description>Path to property for data binding</description> - <name>path</name> - <required>true</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>id</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Enable/disable HTML escaping of rendered values.</description> - <name>htmlEscape</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Equivalent to "class" - HTML Optional Attribute</description> - <name>cssClass</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Equivalent to "class" - HTML Optional Attribute. Used when the bound field has errors.</description> - <name>cssErrorClass</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Equivalent to "style" - HTML Optional Attribute</description> - <name>cssStyle</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>lang</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>title</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>dir</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>tabindex</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Optional Attribute. Setting the value of this attribute to 'true' (without the quotes) will disable the HTML element.</description> - <name>disabled</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onclick</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>ondblclick</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmousedown</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmouseup</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmouseover</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmousemove</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmouseout</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onkeypress</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onkeyup</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onkeydown</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onfocus</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onblur</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onchange</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>accesskey</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>The Collection, Map or array of objects used to generate the 'input' tags with type 'radio'. This attribute is required unless the property for data binding is an Enum, in which case the enum's values are used.</description> - <name>items</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Name of the property mapped to 'value' attribute of the 'input' tags with type 'radio'</description> - <name>itemValue</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Value to be displayed as part of the 'input' tags with type 'radio'</description> - <name>itemLabel</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Delimiter to use between each 'input' tag with type 'radio'. There is no delimiter by default.</description> - <name>delimiter</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Specifies the HTML element that is used to enclose each 'input' tag with type 'radio'. Defaults to 'span'.</description> - <name>element</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <dynamic-attributes>true</dynamic-attributes> - </tag> - - <tag> - <description>Renders an HTML 'input' tag with type 'checkbox'.</description> - <name>checkbox</name> - <tag-class>org.springframework.web.servlet.tags.form.CheckboxTag</tag-class> - <body-content>empty</body-content> - <attribute> - <description>Path to property for data binding</description> - <name>path</name> - <required>true</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>id</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Enable/disable HTML escaping of rendered values.</description> - <name>htmlEscape</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Equivalent to "class" - HTML Optional Attribute</description> - <name>cssClass</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Equivalent to "class" - HTML Optional Attribute. Used when the bound field has errors.</description> - <name>cssErrorClass</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Equivalent to "style" - HTML Optional Attribute</description> - <name>cssStyle</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>lang</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>title</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>dir</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>tabindex</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Optional Attribute. Setting the value of this attribute to 'true' (without the quotes) will disable the HTML element.</description> - <name>disabled</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onclick</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>ondblclick</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmousedown</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmouseup</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmouseover</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmousemove</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmouseout</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onkeypress</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onkeyup</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onkeydown</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onfocus</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onblur</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onchange</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>accesskey</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Optional Attribute</description> - <name>value</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Value to be displayed as part of the tag</description> - <name>label</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <dynamic-attributes>true</dynamic-attributes> - </tag> - - <tag> - <description>Renders multiple HTML 'input' tags with type 'checkbox'.</description> - <name>checkboxes</name> - <tag-class>org.springframework.web.servlet.tags.form.CheckboxesTag</tag-class> - <body-content>empty</body-content> - <attribute> - <description>Path to property for data binding</description> - <name>path</name> - <required>true</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>id</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Enable/disable HTML escaping of rendered values.</description> - <name>htmlEscape</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Equivalent to "class" - HTML Optional Attribute</description> - <name>cssClass</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Equivalent to "class" - HTML Optional Attribute. Used when the bound field has errors.</description> - <name>cssErrorClass</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Equivalent to "style" - HTML Optional Attribute</description> - <name>cssStyle</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>lang</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>title</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>dir</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>tabindex</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Optional Attribute. Setting the value of this attribute to 'true' (without the quotes) will disable the HTML element.</description> - <name>disabled</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onclick</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>ondblclick</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmousedown</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmouseup</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmouseover</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmousemove</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmouseout</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onkeypress</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onkeyup</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onkeydown</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onfocus</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onblur</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onchange</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>accesskey</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>The Collection, Map or array of objects used to generate the 'input' tags with type 'checkbox'</description> - <name>items</name> - <required>true</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Name of the property mapped to 'value' attribute of the 'input' tags with type 'checkbox'</description> - <name>itemValue</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Value to be displayed as part of the 'input' tags with type 'checkbox'</description> - <name>itemLabel</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Delimiter to use between each 'input' tag with type 'checkbox'. There is no delimiter by default.</description> - <name>delimiter</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Specifies the HTML element that is used to enclose each 'input' tag with type 'checkbox'. Defaults to 'span'.</description> - <name>element</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <dynamic-attributes>true</dynamic-attributes> - </tag> - - <tag> - <description>Renders an HTML 'textarea'.</description> - <name>textarea</name> - <tag-class>org.springframework.web.servlet.tags.form.TextareaTag</tag-class> - <body-content>empty</body-content> - <attribute> - <description>Path to property for data binding</description> - <name>path</name> - <required>true</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>id</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Enable/disable HTML escaping of rendered values.</description> - <name>htmlEscape</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Equivalent to "class" - HTML Optional Attribute</description> - <name>cssClass</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Equivalent to "class" - HTML Optional Attribute. Used when the bound field has errors.</description> - <name>cssErrorClass</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Equivalent to "style" - HTML Optional Attribute</description> - <name>cssStyle</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>lang</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>title</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>dir</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>tabindex</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Optional Attribute. Setting the value of this attribute to 'true' (without the quotes) will disable the HTML element.</description> - <name>disabled</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onclick</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>ondblclick</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmousedown</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmouseup</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmouseover</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmousemove</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmouseout</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onkeypress</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onkeyup</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onkeydown</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onfocus</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onblur</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onchange</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>accesskey</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Required Attribute</description> - <name>rows</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Required Attribute</description> - <name>cols</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onselect</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Optional Attribute. Setting the value of this attribute to 'true' (without the quotes) will make the HTML element readonly.</description> - <name>readonly</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <dynamic-attributes>true</dynamic-attributes> - </tag> - - <tag> - <description>Renders field errors in an HTML 'span' tag.</description> - <name>errors</name> - <tag-class>org.springframework.web.servlet.tags.form.ErrorsTag</tag-class> - <body-content>JSP</body-content> - <variable> - <name-given>messages</name-given> - <variable-class>java.util.List</variable-class> - </variable> - <attribute> - <description>Path to errors object for data binding</description> - <name>path</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>id</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Enable/disable HTML escaping of rendered values.</description> - <name>htmlEscape</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Delimiter for displaying multiple error messages. Defaults to the br tag.</description> - <name>delimiter</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Equivalent to "class" - HTML Optional Attribute</description> - <name>cssClass</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Equivalent to "style" - HTML Optional Attribute</description> - <name>cssStyle</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>lang</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>title</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>dir</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>tabindex</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onclick</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>ondblclick</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmousedown</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmouseup</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmouseover</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmousemove</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmouseout</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onkeypress</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onkeyup</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onkeydown</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Specifies the HTML element that is used to render the enclosing errors.</description> - <name>element</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <dynamic-attributes>true</dynamic-attributes> - </tag> - - <tag> - <description>Renders a form field label in an HTML 'label' tag.</description> - <name>label</name> - <tag-class>org.springframework.web.servlet.tags.form.LabelTag</tag-class> - <body-content>JSP</body-content> - <attribute> - <description>Path to property for data binding</description> - <name>path</name> - <required>true</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>id</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Enable/disable HTML escaping of rendered values.</description> - <name>htmlEscape</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>for</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Equivalent to "class" - HTML Optional Attribute.</description> - <name>cssClass</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Equivalent to "class" - HTML Optional Attribute. Used only when errors are present.</description> - <name>cssErrorClass</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Equivalent to "style" - HTML Optional Attribute</description> - <name>cssStyle</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>lang</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>title</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>dir</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Standard Attribute</description> - <name>tabindex</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onclick</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>ondblclick</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmousedown</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmouseup</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmouseover</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmousemove</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onmouseout</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onkeypress</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onkeyup</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Event Attribute</description> - <name>onkeydown</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <dynamic-attributes>true</dynamic-attributes> - </tag> - - <tag> - <description>Renders an HTML 'button' tag.</description> - <name>button</name> - <tag-class>org.springframework.web.servlet.tags.form.ButtonTag</tag-class> - <body-content>JSP</body-content> - <attribute> - <description>HTML Standard Attribute</description> - <name>id</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>The name attribute for the HTML button tag</description> - <name>name</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>The value attribute for the HTML button tag</description> - <name>value</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>HTML Optional Attribute. Setting the value of this attribute to 'true' (without the quotes) will disable the HTML element.</description> - <name>disabled</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <dynamic-attributes>true</dynamic-attributes> - </tag> - -</taglib> +<?xml version="1.0" encoding="UTF-8"?> +<taglib xmlns="http://java.sun.com/xml/ns/j2ee" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" + version="2.0"> + + <description>Spring Framework JSP Form Tag Library</description> + <tlib-version>3.0</tlib-version> + <short-name>form</short-name> + <uri>http://www.springframework.org/tags/form</uri> + + <tag> + <description>Renders an HTML 'form' tag and exposes a binding path to inner tags for binding.</description> + <name>form</name> + <tag-class>org.springframework.web.servlet.tags.form.FormTag</tag-class> + <body-content>JSP</body-content> + <attribute> + <description>HTML Standard Attribute</description> + <name>id</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute - added for backwards compatibility cases</description> + <name>name</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Enable/disable HTML escaping of rendered values.</description> + <name>htmlEscape</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Equivalent to "class" - HTML Optional Attribute</description> + <name>cssClass</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Equivalent to "style" - HTML Optional Attribute</description> + <name>cssStyle</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>lang</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>title</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>dir</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onclick</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>ondblclick</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmousedown</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmouseup</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmouseover</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmousemove</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmouseout</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onkeypress</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onkeyup</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onkeydown</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Name of the model attribute under which the form object is exposed. + Defaults to 'command'.</description> + <name>modelAttribute</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Name of the model attribute under which the form object is exposed. + Defaults to 'command'.</description> + <name>commandName</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Required Attribute</description> + <name>action</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Optional Attribute</description> + <name>method</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Optional Attribute</description> + <name>target</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Optional Attribute</description> + <name>enctype</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Specifies the list of character encodings for input data that is accepted by the server processing this form. The value is a space- and/or comma-delimited list of charset values. The client must interpret this list as an exclusive-or list, i.e., the server is able to accept any single character encoding per entity received.</description> + <name>acceptCharset</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onsubmit</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onreset</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Common Optional Attribute</description> + <name>autocomplete</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>The parameter name used for HTTP methods other then GET and POST. Default is '_method'</description> + <name>methodParam</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <dynamic-attributes>true</dynamic-attributes> + </tag> + + <tag> + <description>Renders an HTML 'input' tag with type 'text' using the bound value.</description> + <name>input</name> + <tag-class>org.springframework.web.servlet.tags.form.InputTag</tag-class> + <body-content>empty</body-content> + <attribute> + <description>Path to property for data binding</description> + <name>path</name> + <required>true</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>id</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Enable/disable HTML escaping of rendered values.</description> + <name>htmlEscape</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Equivalent to "class" - HTML Optional Attribute</description> + <name>cssClass</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Equivalent to "class" - HTML Optional Attribute. Used when the bound field has errors.</description> + <name>cssErrorClass</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Equivalent to "style" - HTML Optional Attribute</description> + <name>cssStyle</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>lang</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>title</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>dir</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>tabindex</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Optional Attribute. Setting the value of this attribute to 'true' (without the quotes) will disable the HTML element.</description> + <name>disabled</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onclick</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>ondblclick</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmousedown</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmouseup</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmouseover</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmousemove</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmouseout</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onkeypress</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onkeyup</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onkeydown</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onfocus</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onblur</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onchange</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>accesskey</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Optional Attribute</description> + <name>size</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Optional Attribute</description> + <name>maxlength</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Optional Attribute</description> + <name>alt</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onselect</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Optional Attribute. Setting the value of this attribute to 'true' (without the quotes) will make the HTML element readonly.</description> + <name>readonly</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Common Optional Attribute</description> + <name>autocomplete</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <dynamic-attributes>true</dynamic-attributes> + </tag> + + <tag> + <description>Renders an HTML 'input' tag with type 'password' using the bound value.</description> + <name>password</name> + <tag-class>org.springframework.web.servlet.tags.form.PasswordInputTag</tag-class> + <body-content>empty</body-content> + <attribute> + <description>Path to property for data binding</description> + <name>path</name> + <required>true</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>id</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Enable/disable HTML escaping of rendered values.</description> + <name>htmlEscape</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Equivalent to "class" - HTML Optional Attribute</description> + <name>cssClass</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Equivalent to "class" - HTML Optional Attribute. Used when the bound field has errors.</description> + <name>cssErrorClass</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Equivalent to "style" - HTML Optional Attribute</description> + <name>cssStyle</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>lang</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>title</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>dir</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>tabindex</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Optional Attribute. Setting the value of this attribute to 'true' (without the quotes) will disable the HTML element.</description> + <name>disabled</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onclick</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>ondblclick</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmousedown</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmouseup</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmouseover</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmousemove</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmouseout</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onkeypress</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onkeyup</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onkeydown</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onfocus</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onblur</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onchange</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>accesskey</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Optional Attribute</description> + <name>size</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Optional Attribute</description> + <name>maxlength</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Optional Attribute</description> + <name>alt</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onselect</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Optional Attribute. Setting the value of this attribute to 'true' (without the quotes) will make the HTML element readonly.</description> + <name>readonly</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Common Optional Attribute</description> + <name>autocomplete</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Is the password value to be shown? Defaults to false.</description> + <name>showPassword</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <dynamic-attributes>true</dynamic-attributes> + </tag> + + <tag> + <description>Renders an HTML 'input' tag with type 'hidden' using the bound value.</description> + <name>hidden</name> + <tag-class>org.springframework.web.servlet.tags.form.HiddenInputTag</tag-class> + <body-content>empty</body-content> + <attribute> + <description>Path to property for data binding</description> + <name>path</name> + <required>true</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>id</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Enable/disable HTML escaping of rendered values.</description> + <name>htmlEscape</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Equivalent to "class" - HTML Optional Attribute</description> + <name>cssClass</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Equivalent to "class" - HTML Optional Attribute. Used when the bound field has errors.</description> + <name>cssErrorClass</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Equivalent to "style" - HTML Optional Attribute</description> + <name>cssStyle</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>lang</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>title</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>dir</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>tabindex</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Optional Attribute. Setting the value of this attribute to 'true' (without the quotes) will disable the HTML element.</description> + <name>disabled</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onclick</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>ondblclick</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmousedown</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmouseup</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmouseover</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmousemove</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmouseout</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onkeypress</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onkeyup</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onkeydown</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <dynamic-attributes>true</dynamic-attributes> + </tag> + + <tag> + <description>Renders an HTML 'select' element. Supports databinding to the selected option.</description> + <name>select</name> + <tag-class>org.springframework.web.servlet.tags.form.SelectTag</tag-class> + <body-content>JSP</body-content> + <attribute> + <description>Path to property for data binding</description> + <name>path</name> + <required>true</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>id</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Enable/disable HTML escaping of rendered values.</description> + <name>htmlEscape</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Equivalent to "class" - HTML Optional Attribute</description> + <name>cssClass</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Equivalent to "class" - HTML Optional Attribute. Used when the bound field has errors.</description> + <name>cssErrorClass</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Equivalent to "style" - HTML Optional Attribute</description> + <name>cssStyle</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>lang</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>title</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>dir</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>tabindex</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Optional Attribute. Setting the value of this attribute to 'true' (without the quotes) will disable the HTML element.</description> + <name>disabled</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onclick</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>ondblclick</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmousedown</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmouseup</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmouseover</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmousemove</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmouseout</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onkeypress</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onkeyup</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onkeydown</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onfocus</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onblur</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onchange</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>accesskey</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>The Collection, Map or array of objects used to generate the inner 'option' tags</description> + <name>items</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Name of the property mapped to 'value' attribute of the 'option' tag</description> + <name>itemValue</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Name of the property mapped to the inner text of the 'option' tag</description> + <name>itemLabel</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Optional Attribute</description> + <name>size</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Optional Attribute</description> + <name>multiple</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <dynamic-attributes>true</dynamic-attributes> + </tag> + + <tag> + <description>Renders a single HTML 'option'. Sets 'selected' as appropriate based on bound value.</description> + <name>option</name> + <tag-class>org.springframework.web.servlet.tags.form.OptionTag</tag-class> + <body-content>JSP</body-content> + <variable> + <description>The actual value bound to the 'value' attribute</description> + <name-given>value</name-given> + <variable-class>java.lang.Object</variable-class> + </variable> + <variable> + <description>The String representation of thr value bound to the 'value' attribute, taking into consideration + any PropertyEditor associated with the enclosing 'select' tag.</description> + <name-given>displayValue</name-given> + <variable-class>java.lang.String</variable-class> + </variable> + <attribute> + <description>HTML Standard Attribute</description> + <name>id</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Optional Attribute</description> + <name>value</name> + <required>true</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Optional Attribute</description> + <name>label</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Enable/disable HTML escaping of rendered values.</description> + <name>htmlEscape</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Equivalent to "class" - HTML Optional Attribute</description> + <name>cssClass</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Equivalent to "class" - HTML Optional Attribute. Used when the bound field has errors.</description> + <name>cssErrorClass</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Equivalent to "style" - HTML Optional Attribute</description> + <name>cssStyle</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>lang</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>title</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>dir</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>tabindex</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Optional Attribute. Setting the value of this attribute to 'true' (without the quotes) will disable the HTML element.</description> + <name>disabled</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onclick</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>ondblclick</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmousedown</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmouseup</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmouseover</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmousemove</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmouseout</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onkeypress</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onkeyup</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onkeydown</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <dynamic-attributes>true</dynamic-attributes> + </tag> + + <tag> + <description>Renders a list of HTML 'option' tags. Sets 'selected' as appropriate based on bound value.</description> + <name>options</name> + <tag-class>org.springframework.web.servlet.tags.form.OptionsTag</tag-class> + <body-content>empty</body-content> + <attribute> + <description>HTML Standard Attribute</description> + <name>id</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>The Collection, Map or array of objects used to generate the inner 'option' tags. This attribute is required unless the containing select's property for data binding is an Enum, in which case the enum's values are used.</description> + <name>items</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Name of the property mapped to 'value' attribute of the 'option' tag</description> + <name>itemValue</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Name of the property mapped to the inner text of the 'option' tag</description> + <name>itemLabel</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Enable/disable HTML escaping of rendered values.</description> + <name>htmlEscape</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Equivalent to "class" - HTML Optional Attribute</description> + <name>cssClass</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Equivalent to "class" - HTML Optional Attribute. Used when the bound field has errors.</description> + <name>cssErrorClass</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Equivalent to "style" - HTML Optional Attribute</description> + <name>cssStyle</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>lang</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>title</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>dir</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>tabindex</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Optional Attribute. Setting the value of this attribute to 'true' (without the quotes) will disable the HTML element.</description> + <name>disabled</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onclick</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>ondblclick</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmousedown</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmouseup</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmouseover</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmousemove</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmouseout</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onkeypress</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onkeyup</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onkeydown</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <dynamic-attributes>true</dynamic-attributes> + </tag> + + <tag> + <description>Renders an HTML 'input' tag with type 'radio'.</description> + <name>radiobutton</name> + <tag-class>org.springframework.web.servlet.tags.form.RadioButtonTag</tag-class> + <body-content>empty</body-content> + <attribute> + <description>Path to property for data binding</description> + <name>path</name> + <required>true</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>id</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Enable/disable HTML escaping of rendered values.</description> + <name>htmlEscape</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Equivalent to "class" - HTML Optional Attribute</description> + <name>cssClass</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Equivalent to "class" - HTML Optional Attribute. Used when the bound field has errors.</description> + <name>cssErrorClass</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Equivalent to "style" - HTML Optional Attribute</description> + <name>cssStyle</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>lang</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>title</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>dir</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>tabindex</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Optional Attribute. Setting the value of this attribute to 'true' (without the quotes) will disable the HTML element.</description> + <name>disabled</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onclick</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>ondblclick</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmousedown</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmouseup</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmouseover</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmousemove</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmouseout</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onkeypress</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onkeyup</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onkeydown</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onfocus</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onblur</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onchange</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>accesskey</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Optional Attribute</description> + <name>value</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Value to be displayed as part of the tag</description> + <name>label</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <dynamic-attributes>true</dynamic-attributes> + </tag> + + <tag> + <description>Renders multiple HTML 'input' tags with type 'radio'.</description> + <name>radiobuttons</name> + <tag-class>org.springframework.web.servlet.tags.form.RadioButtonsTag</tag-class> + <body-content>empty</body-content> + <attribute> + <description>Path to property for data binding</description> + <name>path</name> + <required>true</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>id</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Enable/disable HTML escaping of rendered values.</description> + <name>htmlEscape</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Equivalent to "class" - HTML Optional Attribute</description> + <name>cssClass</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Equivalent to "class" - HTML Optional Attribute. Used when the bound field has errors.</description> + <name>cssErrorClass</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Equivalent to "style" - HTML Optional Attribute</description> + <name>cssStyle</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>lang</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>title</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>dir</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>tabindex</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Optional Attribute. Setting the value of this attribute to 'true' (without the quotes) will disable the HTML element.</description> + <name>disabled</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onclick</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>ondblclick</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmousedown</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmouseup</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmouseover</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmousemove</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmouseout</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onkeypress</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onkeyup</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onkeydown</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onfocus</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onblur</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onchange</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>accesskey</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>The Collection, Map or array of objects used to generate the 'input' tags with type 'radio'. This attribute is required unless the property for data binding is an Enum, in which case the enum's values are used.</description> + <name>items</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Name of the property mapped to 'value' attribute of the 'input' tags with type 'radio'</description> + <name>itemValue</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Value to be displayed as part of the 'input' tags with type 'radio'</description> + <name>itemLabel</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Delimiter to use between each 'input' tag with type 'radio'. There is no delimiter by default.</description> + <name>delimiter</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Specifies the HTML element that is used to enclose each 'input' tag with type 'radio'. Defaults to 'span'.</description> + <name>element</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <dynamic-attributes>true</dynamic-attributes> + </tag> + + <tag> + <description>Renders an HTML 'input' tag with type 'checkbox'.</description> + <name>checkbox</name> + <tag-class>org.springframework.web.servlet.tags.form.CheckboxTag</tag-class> + <body-content>empty</body-content> + <attribute> + <description>Path to property for data binding</description> + <name>path</name> + <required>true</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>id</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Enable/disable HTML escaping of rendered values.</description> + <name>htmlEscape</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Equivalent to "class" - HTML Optional Attribute</description> + <name>cssClass</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Equivalent to "class" - HTML Optional Attribute. Used when the bound field has errors.</description> + <name>cssErrorClass</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Equivalent to "style" - HTML Optional Attribute</description> + <name>cssStyle</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>lang</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>title</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>dir</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>tabindex</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Optional Attribute. Setting the value of this attribute to 'true' (without the quotes) will disable the HTML element.</description> + <name>disabled</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onclick</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>ondblclick</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmousedown</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmouseup</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmouseover</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmousemove</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmouseout</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onkeypress</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onkeyup</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onkeydown</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onfocus</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onblur</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onchange</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>accesskey</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Optional Attribute</description> + <name>value</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Value to be displayed as part of the tag</description> + <name>label</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <dynamic-attributes>true</dynamic-attributes> + </tag> + + <tag> + <description>Renders multiple HTML 'input' tags with type 'checkbox'.</description> + <name>checkboxes</name> + <tag-class>org.springframework.web.servlet.tags.form.CheckboxesTag</tag-class> + <body-content>empty</body-content> + <attribute> + <description>Path to property for data binding</description> + <name>path</name> + <required>true</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>id</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Enable/disable HTML escaping of rendered values.</description> + <name>htmlEscape</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Equivalent to "class" - HTML Optional Attribute</description> + <name>cssClass</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Equivalent to "class" - HTML Optional Attribute. Used when the bound field has errors.</description> + <name>cssErrorClass</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Equivalent to "style" - HTML Optional Attribute</description> + <name>cssStyle</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>lang</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>title</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>dir</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>tabindex</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Optional Attribute. Setting the value of this attribute to 'true' (without the quotes) will disable the HTML element.</description> + <name>disabled</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onclick</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>ondblclick</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmousedown</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmouseup</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmouseover</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmousemove</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmouseout</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onkeypress</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onkeyup</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onkeydown</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onfocus</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onblur</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onchange</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>accesskey</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>The Collection, Map or array of objects used to generate the 'input' tags with type 'checkbox'</description> + <name>items</name> + <required>true</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Name of the property mapped to 'value' attribute of the 'input' tags with type 'checkbox'</description> + <name>itemValue</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Value to be displayed as part of the 'input' tags with type 'checkbox'</description> + <name>itemLabel</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Delimiter to use between each 'input' tag with type 'checkbox'. There is no delimiter by default.</description> + <name>delimiter</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Specifies the HTML element that is used to enclose each 'input' tag with type 'checkbox'. Defaults to 'span'.</description> + <name>element</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <dynamic-attributes>true</dynamic-attributes> + </tag> + + <tag> + <description>Renders an HTML 'textarea'.</description> + <name>textarea</name> + <tag-class>org.springframework.web.servlet.tags.form.TextareaTag</tag-class> + <body-content>empty</body-content> + <attribute> + <description>Path to property for data binding</description> + <name>path</name> + <required>true</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>id</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Enable/disable HTML escaping of rendered values.</description> + <name>htmlEscape</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Equivalent to "class" - HTML Optional Attribute</description> + <name>cssClass</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Equivalent to "class" - HTML Optional Attribute. Used when the bound field has errors.</description> + <name>cssErrorClass</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Equivalent to "style" - HTML Optional Attribute</description> + <name>cssStyle</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>lang</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>title</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>dir</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>tabindex</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Optional Attribute. Setting the value of this attribute to 'true' (without the quotes) will disable the HTML element.</description> + <name>disabled</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onclick</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>ondblclick</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmousedown</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmouseup</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmouseover</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmousemove</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmouseout</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onkeypress</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onkeyup</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onkeydown</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onfocus</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onblur</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onchange</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>accesskey</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Required Attribute</description> + <name>rows</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Required Attribute</description> + <name>cols</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onselect</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Optional Attribute. Setting the value of this attribute to 'true' (without the quotes) will make the HTML element readonly.</description> + <name>readonly</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <dynamic-attributes>true</dynamic-attributes> + </tag> + + <tag> + <description>Renders field errors in an HTML 'span' tag.</description> + <name>errors</name> + <tag-class>org.springframework.web.servlet.tags.form.ErrorsTag</tag-class> + <body-content>JSP</body-content> + <variable> + <name-given>messages</name-given> + <variable-class>java.util.List</variable-class> + </variable> + <attribute> + <description>Path to errors object for data binding</description> + <name>path</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>id</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Enable/disable HTML escaping of rendered values.</description> + <name>htmlEscape</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Delimiter for displaying multiple error messages. Defaults to the br tag.</description> + <name>delimiter</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Equivalent to "class" - HTML Optional Attribute</description> + <name>cssClass</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Equivalent to "style" - HTML Optional Attribute</description> + <name>cssStyle</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>lang</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>title</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>dir</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>tabindex</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onclick</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>ondblclick</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmousedown</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmouseup</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmouseover</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmousemove</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmouseout</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onkeypress</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onkeyup</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onkeydown</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Specifies the HTML element that is used to render the enclosing errors.</description> + <name>element</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <dynamic-attributes>true</dynamic-attributes> + </tag> + + <tag> + <description>Renders a form field label in an HTML 'label' tag.</description> + <name>label</name> + <tag-class>org.springframework.web.servlet.tags.form.LabelTag</tag-class> + <body-content>JSP</body-content> + <attribute> + <description>Path to property for data binding</description> + <name>path</name> + <required>true</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>id</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Enable/disable HTML escaping of rendered values.</description> + <name>htmlEscape</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>for</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Equivalent to "class" - HTML Optional Attribute.</description> + <name>cssClass</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Equivalent to "class" - HTML Optional Attribute. Used only when errors are present.</description> + <name>cssErrorClass</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Equivalent to "style" - HTML Optional Attribute</description> + <name>cssStyle</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>lang</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>title</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>dir</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Standard Attribute</description> + <name>tabindex</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onclick</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>ondblclick</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmousedown</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmouseup</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmouseover</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmousemove</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onmouseout</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onkeypress</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onkeyup</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Event Attribute</description> + <name>onkeydown</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <dynamic-attributes>true</dynamic-attributes> + </tag> + + <tag> + <description>Renders an HTML 'button' tag.</description> + <name>button</name> + <tag-class>org.springframework.web.servlet.tags.form.ButtonTag</tag-class> + <body-content>JSP</body-content> + <attribute> + <description>HTML Standard Attribute</description> + <name>id</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>The name attribute for the HTML button tag</description> + <name>name</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>The value attribute for the HTML button tag</description> + <name>value</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>HTML Optional Attribute. Setting the value of this attribute to 'true' (without the quotes) will disable the HTML element.</description> + <name>disabled</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <dynamic-attributes>true</dynamic-attributes> + </tag> + +</taglib> diff --git a/bbb-lti/web-app/WEB-INF/tld/spring.tld b/bbb-lti/src/main/webapp/tld/spring.tld similarity index 97% rename from bbb-lti/web-app/WEB-INF/tld/spring.tld rename to bbb-lti/src/main/webapp/tld/spring.tld index a0a8c6f7fc..65e234b67e 100644 --- a/bbb-lti/web-app/WEB-INF/tld/spring.tld +++ b/bbb-lti/src/main/webapp/tld/spring.tld @@ -1,457 +1,457 @@ -<?xml version="1.0" encoding="UTF-8"?> -<taglib xmlns="http://java.sun.com/xml/ns/j2ee" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" - version="2.0"> - - <description>Spring Framework JSP Tag Library</description> - <tlib-version>3.0</tlib-version> - <short-name>spring</short-name> - <uri>http://www.springframework.org/tags</uri> - - <tag> - <description> - Sets default HTML escape value for the current page. - Overrides a "defaultHtmlEscape" context-param in web.xml, if any. - </description> - <name>htmlEscape</name> - <tag-class>org.springframework.web.servlet.tags.HtmlEscapeTag</tag-class> - <body-content>JSP</body-content> - <attribute> - <description>Set the default value for HTML escaping, to be put - into the current PageContext.</description> - <name>defaultHtmlEscape</name> - <required>true</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - </tag> - - <tag> - <description> - Escapes its enclosed body content, applying HTML escaping and/or JavaScript escaping. - The HTML escaping flag participates in a page-wide or application-wide setting - (i.e. by HtmlEscapeTag or a "defaultHtmlEscape" context-param in web.xml). - </description> - <name>escapeBody</name> - <tag-class>org.springframework.web.servlet.tags.EscapeBodyTag</tag-class> - <body-content>JSP</body-content> - <attribute> - <description>Set HTML escaping for this tag, as boolean value. Overrides the - default HTML escaping setting for the current page.</description> - <name>htmlEscape</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Set JavaScript escaping for this tag, as boolean value. - Default is false.</description> - <name>javaScriptEscape</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - </tag> - - <tag> - <description> - Retrieves the message with the given code, or text if code isn't resolvable. - The HTML escaping flag participates in a page-wide or application-wide setting - (i.e. by HtmlEscapeTag or a "defaultHtmlEscape" context-param in web.xml). - </description> - <name>message</name> - <tag-class>org.springframework.web.servlet.tags.MessageTag</tag-class> - <body-content>JSP</body-content> - <attribute> - <description>A MessageSourceResolvable argument (direct or through JSP EL). - Fits nicely when used in conjunction with Spring's own validation error - classes which all implement the MessageSourceResolvable interface. For - example, this allows you to iterate over all of the errors in a form, - passing each error (using a runtime expression) as the value of this - 'message' attribute, thus effecting the easy display of such error - messages.</description> - <name>message</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>The code (key) to use when looking up the message. - If code is not provided, the text attribute will be used.</description> - <name>code</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Set optional message arguments for this tag, as a - (comma-)delimited String (each String argument can contain JSP EL), - an Object array (used as argument array), or a single Object (used - as single argument).</description> - <name>arguments</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>The separator character to be used for splitting the - arguments string value; defaults to a 'comma' (',').</description> - <name>argumentSeparator</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Default text to output when a message for the given code - could not be found. If both text and code are not set, the tag will - output null.</description> - <name>text</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>The string to use when binding the result to the page, - request, session or application scope. If not specified, the result - gets outputted to the writer (i.e. typically directly to the JSP).</description> - <name>var</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>The scope to use when exporting the result to a variable. - This attribute is only used when var is also set. Possible values are - page, request, session and application.</description> - <name>scope</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Set HTML escaping for this tag, as boolean value. - Overrides the default HTML escaping setting for the current page.</description> - <name>htmlEscape</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Set JavaScript escaping for this tag, as boolean value. Default is false.</description> - <name>javaScriptEscape</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - </tag> - - <tag> - <description> - Retrieves the theme message with the given code, or text if code isn't resolvable. - The HTML escaping flag participates in a page-wide or application-wide setting - (i.e. by HtmlEscapeTag or a "defaultHtmlEscape" context-param in web.xml). - </description> - <name>theme</name> - <tag-class>org.springframework.web.servlet.tags.ThemeTag</tag-class> - <body-content>JSP</body-content> - <attribute> - <description>A MessageSourceResolvable argument (direct or through JSP EL).</description> - <name>message</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>The code (key) to use when looking up the message. - If code is not provided, the text attribute will be used.</description> - <name>code</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Set optional message arguments for this tag, as a - (comma-)delimited String (each String argument can contain JSP EL), - an Object array (used as argument array), or a single Object (used - as single argument).</description> - <name>arguments</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>The separator character to be used for splitting the - arguments string value; defaults to a 'comma' (',').</description> - <name>argumentSeparator</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Default text to output when a message for the given code - could not be found. If both text and code are not set, the tag will - output null.</description> - <name>text</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>The string to use when binding the result to the page, - request, session or application scope. If not specified, the result - gets outputted to the writer (i.e. typically directly to the JSP).</description> - <name>var</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>The scope to use when exporting the result to a variable. - This attribute is only used when var is also set. Possible values are - page, request, session and application.</description> - <name>scope</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Set HTML escaping for this tag, as boolean value. - Overrides the default HTML escaping setting for the current page.</description> - <name>htmlEscape</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Set JavaScript escaping for this tag, as boolean value. Default is false.</description> - <name>javaScriptEscape</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - </tag> - - <tag> - <description> - Provides Errors instance in case of bind errors. - The HTML escaping flag participates in a page-wide or application-wide setting - (i.e. by HtmlEscapeTag or a "defaultHtmlEscape" context-param in web.xml). - </description> - <name>hasBindErrors</name> - <tag-class>org.springframework.web.servlet.tags.BindErrorsTag</tag-class> - <body-content>JSP</body-content> - <variable> - <name-given>errors</name-given> - <variable-class>org.springframework.validation.Errors</variable-class> - </variable> - <attribute> - <description>The name of the bean in the request, that needs to be - inspected for errors. If errors are available for this bean, they - will be bound under the 'errors' key.</description> - <name>name</name> - <required>true</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Set HTML escaping for this tag, as boolean value. - Overrides the default HTML escaping setting for the current page.</description> - <name>htmlEscape</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - </tag> - - <tag> - <description> - Sets a nested path to be used by the bind tag's path. - </description> - <name>nestedPath</name> - <tag-class>org.springframework.web.servlet.tags.NestedPathTag</tag-class> - <body-content>JSP</body-content> - <variable> - <name-given>nestedPath</name-given> - <variable-class>java.lang.String</variable-class> - </variable> - <attribute> - <description>Set the path that this tag should apply. E.g. 'customer' - to allow bind paths like 'address.street' rather than - 'customer.address.street'.</description> - <name>path</name> - <required>true</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - </tag> - - <tag> - <description> - Provides BindStatus object for the given bind path. - The HTML escaping flag participates in a page-wide or application-wide setting - (i.e. by HtmlEscapeTag or a "defaultHtmlEscape" context-param in web.xml). - </description> - <name>bind</name> - <tag-class>org.springframework.web.servlet.tags.BindTag</tag-class> - <body-content>JSP</body-content> - <variable> - <name-given>status</name-given> - <variable-class>org.springframework.web.servlet.support.BindStatus</variable-class> - </variable> - <attribute> - <description>The path to the bean or bean property to bind status - information for. For instance account.name, company.address.zipCode - or just employee. The status object will exported to the page scope, - specifically for this bean or bean property</description> - <name>path</name> - <required>true</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Set whether to ignore a nested path, if any. Default is to not ignore.</description> - <name>ignoreNestedPath</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Set HTML escaping for this tag, as boolean value. Overrides - the default HTML escaping setting for the current page.</description> - <name>htmlEscape</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - </tag> - - <tag> - <description> - Provides transformation of variables to Strings, using an appropriate - custom PropertyEditor from BindTag (can only be used inside BindTag). - The HTML escaping flag participates in a page-wide or application-wide setting - (i.e. by HtmlEscapeTag or a 'defaultHtmlEscape' context-param in web.xml). - </description> - <name>transform</name> - <tag-class>org.springframework.web.servlet.tags.TransformTag</tag-class> - <body-content>JSP</body-content> - <attribute> - <description>The value to transform. This is the actual object you want - to have transformed (for instance a Date). Using the PropertyEditor that - is currently in use by the 'spring:bind' tag.</description> - <name>value</name> - <required>true</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>The string to use when binding the result to the page, - request, session or application scope. If not specified, the result gets - outputted to the writer (i.e. typically directly to the JSP).</description> - <name>var</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>The scope to use when exported the result to a variable. - This attribute is only used when var is also set. Possible values are - page, request, session and application.</description> - <name>scope</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Set HTML escaping for this tag, as boolean value. Overrides - the default HTML escaping setting for the current page.</description> - <name>htmlEscape</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - </tag> - - <tag> - <description>URL tag based on the JSTL c:url tag. This variant is fully - backwards compatible with the standard tag. Enhancements include support - for URL template parameters.</description> - <name>url</name> - <tag-class>org.springframework.web.servlet.tags.UrlTag</tag-class> - <body-content>JSP</body-content> - <attribute> - <description>The URL to build. This value can include template place holders - that are replaced with the URL encoded value of the named parameter. Parameters - must be defined using the param tag inside the body of this tag.</description> - <name>value</name> - <required>true</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Specifies a remote application context path. The default is the - current application context path.</description> - <name>context</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>The name of the variable to export the URL value to.</description> - <name>var</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>The scope for the var. 'application', 'session', 'request' and - 'page' scopes are supported. Defaults to page scope. This attribute has no - effect unless the var attribute is also defined.</description> - <name>scope</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Set HTML escaping for this tag, as a boolean value. Overrides the - default HTML escaping setting for the current page.</description> - <name>htmlEscape</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Set JavaScript escaping for this tag, as a boolean value. - Default is false.</description> - <name>javaScriptEscape</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - </tag> - - <tag> - <description>Parameter tag based on the JSTL c:param tag. The sole purpose is to - support params inside the spring:url tag.</description> - <name>param</name> - <tag-class>org.springframework.web.servlet.tags.ParamTag</tag-class> - <body-content>JSP</body-content> - <attribute> - <description>The name of the parameter.</description> - <name>name</name> - <required>true</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>The value of the parameter.</description> - <name>value</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - </tag> - - <tag> - <description>Evaluates a Spring expression (SpEL) and either prints the result or assigns it to a variable.</description> - <name>eval</name> - <tag-class>org.springframework.web.servlet.tags.EvalTag</tag-class> - <body-content>JSP</body-content> - <attribute> - <description>The expression to evaluate.</description> - <name>expression</name> - <required>true</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>The name of the variable to export the evaluation result to.</description> - <name>var</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>The scope for the var. 'application', 'session', 'request' and - 'page' scopes are supported. Defaults to page scope. This attribute has no - effect unless the var attribute is also defined.</description> - <name>scope</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Set HTML escaping for this tag, as a boolean value. Overrides the - default HTML escaping setting for the current page.</description> - <name>htmlEscape</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - <attribute> - <description>Set JavaScript escaping for this tag, as a boolean value. Default is false.</description> - <name>javaScriptEscape</name> - <required>false</required> - <rtexprvalue>true</rtexprvalue> - </attribute> - </tag> - -</taglib> +<?xml version="1.0" encoding="UTF-8"?> +<taglib xmlns="http://java.sun.com/xml/ns/j2ee" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" + version="2.0"> + + <description>Spring Framework JSP Tag Library</description> + <tlib-version>3.0</tlib-version> + <short-name>spring</short-name> + <uri>http://www.springframework.org/tags</uri> + + <tag> + <description> + Sets default HTML escape value for the current page. + Overrides a "defaultHtmlEscape" context-param in web.xml, if any. + </description> + <name>htmlEscape</name> + <tag-class>org.springframework.web.servlet.tags.HtmlEscapeTag</tag-class> + <body-content>JSP</body-content> + <attribute> + <description>Set the default value for HTML escaping, to be put + into the current PageContext.</description> + <name>defaultHtmlEscape</name> + <required>true</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + </tag> + + <tag> + <description> + Escapes its enclosed body content, applying HTML escaping and/or JavaScript escaping. + The HTML escaping flag participates in a page-wide or application-wide setting + (i.e. by HtmlEscapeTag or a "defaultHtmlEscape" context-param in web.xml). + </description> + <name>escapeBody</name> + <tag-class>org.springframework.web.servlet.tags.EscapeBodyTag</tag-class> + <body-content>JSP</body-content> + <attribute> + <description>Set HTML escaping for this tag, as boolean value. Overrides the + default HTML escaping setting for the current page.</description> + <name>htmlEscape</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Set JavaScript escaping for this tag, as boolean value. + Default is false.</description> + <name>javaScriptEscape</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + </tag> + + <tag> + <description> + Retrieves the message with the given code, or text if code isn't resolvable. + The HTML escaping flag participates in a page-wide or application-wide setting + (i.e. by HtmlEscapeTag or a "defaultHtmlEscape" context-param in web.xml). + </description> + <name>message</name> + <tag-class>org.springframework.web.servlet.tags.MessageTag</tag-class> + <body-content>JSP</body-content> + <attribute> + <description>A MessageSourceResolvable argument (direct or through JSP EL). + Fits nicely when used in conjunction with Spring's own validation error + classes which all implement the MessageSourceResolvable interface. For + example, this allows you to iterate over all of the errors in a form, + passing each error (using a runtime expression) as the value of this + 'message' attribute, thus effecting the easy display of such error + messages.</description> + <name>message</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>The code (key) to use when looking up the message. + If code is not provided, the text attribute will be used.</description> + <name>code</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Set optional message arguments for this tag, as a + (comma-)delimited String (each String argument can contain JSP EL), + an Object array (used as argument array), or a single Object (used + as single argument).</description> + <name>arguments</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>The separator character to be used for splitting the + arguments string value; defaults to a 'comma' (',').</description> + <name>argumentSeparator</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Default text to output when a message for the given code + could not be found. If both text and code are not set, the tag will + output null.</description> + <name>text</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>The string to use when binding the result to the page, + request, session or application scope. If not specified, the result + gets outputted to the writer (i.e. typically directly to the JSP).</description> + <name>var</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>The scope to use when exporting the result to a variable. + This attribute is only used when var is also set. Possible values are + page, request, session and application.</description> + <name>scope</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Set HTML escaping for this tag, as boolean value. + Overrides the default HTML escaping setting for the current page.</description> + <name>htmlEscape</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Set JavaScript escaping for this tag, as boolean value. Default is false.</description> + <name>javaScriptEscape</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + </tag> + + <tag> + <description> + Retrieves the theme message with the given code, or text if code isn't resolvable. + The HTML escaping flag participates in a page-wide or application-wide setting + (i.e. by HtmlEscapeTag or a "defaultHtmlEscape" context-param in web.xml). + </description> + <name>theme</name> + <tag-class>org.springframework.web.servlet.tags.ThemeTag</tag-class> + <body-content>JSP</body-content> + <attribute> + <description>A MessageSourceResolvable argument (direct or through JSP EL).</description> + <name>message</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>The code (key) to use when looking up the message. + If code is not provided, the text attribute will be used.</description> + <name>code</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Set optional message arguments for this tag, as a + (comma-)delimited String (each String argument can contain JSP EL), + an Object array (used as argument array), or a single Object (used + as single argument).</description> + <name>arguments</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>The separator character to be used for splitting the + arguments string value; defaults to a 'comma' (',').</description> + <name>argumentSeparator</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Default text to output when a message for the given code + could not be found. If both text and code are not set, the tag will + output null.</description> + <name>text</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>The string to use when binding the result to the page, + request, session or application scope. If not specified, the result + gets outputted to the writer (i.e. typically directly to the JSP).</description> + <name>var</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>The scope to use when exporting the result to a variable. + This attribute is only used when var is also set. Possible values are + page, request, session and application.</description> + <name>scope</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Set HTML escaping for this tag, as boolean value. + Overrides the default HTML escaping setting for the current page.</description> + <name>htmlEscape</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Set JavaScript escaping for this tag, as boolean value. Default is false.</description> + <name>javaScriptEscape</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + </tag> + + <tag> + <description> + Provides Errors instance in case of bind errors. + The HTML escaping flag participates in a page-wide or application-wide setting + (i.e. by HtmlEscapeTag or a "defaultHtmlEscape" context-param in web.xml). + </description> + <name>hasBindErrors</name> + <tag-class>org.springframework.web.servlet.tags.BindErrorsTag</tag-class> + <body-content>JSP</body-content> + <variable> + <name-given>errors</name-given> + <variable-class>org.springframework.validation.Errors</variable-class> + </variable> + <attribute> + <description>The name of the bean in the request, that needs to be + inspected for errors. If errors are available for this bean, they + will be bound under the 'errors' key.</description> + <name>name</name> + <required>true</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Set HTML escaping for this tag, as boolean value. + Overrides the default HTML escaping setting for the current page.</description> + <name>htmlEscape</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + </tag> + + <tag> + <description> + Sets a nested path to be used by the bind tag's path. + </description> + <name>nestedPath</name> + <tag-class>org.springframework.web.servlet.tags.NestedPathTag</tag-class> + <body-content>JSP</body-content> + <variable> + <name-given>nestedPath</name-given> + <variable-class>java.lang.String</variable-class> + </variable> + <attribute> + <description>Set the path that this tag should apply. E.g. 'customer' + to allow bind paths like 'address.street' rather than + 'customer.address.street'.</description> + <name>path</name> + <required>true</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + </tag> + + <tag> + <description> + Provides BindStatus object for the given bind path. + The HTML escaping flag participates in a page-wide or application-wide setting + (i.e. by HtmlEscapeTag or a "defaultHtmlEscape" context-param in web.xml). + </description> + <name>bind</name> + <tag-class>org.springframework.web.servlet.tags.BindTag</tag-class> + <body-content>JSP</body-content> + <variable> + <name-given>status</name-given> + <variable-class>org.springframework.web.servlet.support.BindStatus</variable-class> + </variable> + <attribute> + <description>The path to the bean or bean property to bind status + information for. For instance account.name, company.address.zipCode + or just employee. The status object will exported to the page scope, + specifically for this bean or bean property</description> + <name>path</name> + <required>true</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Set whether to ignore a nested path, if any. Default is to not ignore.</description> + <name>ignoreNestedPath</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Set HTML escaping for this tag, as boolean value. Overrides + the default HTML escaping setting for the current page.</description> + <name>htmlEscape</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + </tag> + + <tag> + <description> + Provides transformation of variables to Strings, using an appropriate + custom PropertyEditor from BindTag (can only be used inside BindTag). + The HTML escaping flag participates in a page-wide or application-wide setting + (i.e. by HtmlEscapeTag or a 'defaultHtmlEscape' context-param in web.xml). + </description> + <name>transform</name> + <tag-class>org.springframework.web.servlet.tags.TransformTag</tag-class> + <body-content>JSP</body-content> + <attribute> + <description>The value to transform. This is the actual object you want + to have transformed (for instance a Date). Using the PropertyEditor that + is currently in use by the 'spring:bind' tag.</description> + <name>value</name> + <required>true</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>The string to use when binding the result to the page, + request, session or application scope. If not specified, the result gets + outputted to the writer (i.e. typically directly to the JSP).</description> + <name>var</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>The scope to use when exported the result to a variable. + This attribute is only used when var is also set. Possible values are + page, request, session and application.</description> + <name>scope</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Set HTML escaping for this tag, as boolean value. Overrides + the default HTML escaping setting for the current page.</description> + <name>htmlEscape</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + </tag> + + <tag> + <description>URL tag based on the JSTL c:url tag. This variant is fully + backwards compatible with the standard tag. Enhancements include support + for URL template parameters.</description> + <name>url</name> + <tag-class>org.springframework.web.servlet.tags.UrlTag</tag-class> + <body-content>JSP</body-content> + <attribute> + <description>The URL to build. This value can include template place holders + that are replaced with the URL encoded value of the named parameter. Parameters + must be defined using the param tag inside the body of this tag.</description> + <name>value</name> + <required>true</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Specifies a remote application context path. The default is the + current application context path.</description> + <name>context</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>The name of the variable to export the URL value to.</description> + <name>var</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>The scope for the var. 'application', 'session', 'request' and + 'page' scopes are supported. Defaults to page scope. This attribute has no + effect unless the var attribute is also defined.</description> + <name>scope</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Set HTML escaping for this tag, as a boolean value. Overrides the + default HTML escaping setting for the current page.</description> + <name>htmlEscape</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Set JavaScript escaping for this tag, as a boolean value. + Default is false.</description> + <name>javaScriptEscape</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + </tag> + + <tag> + <description>Parameter tag based on the JSTL c:param tag. The sole purpose is to + support params inside the spring:url tag.</description> + <name>param</name> + <tag-class>org.springframework.web.servlet.tags.ParamTag</tag-class> + <body-content>JSP</body-content> + <attribute> + <description>The name of the parameter.</description> + <name>name</name> + <required>true</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>The value of the parameter.</description> + <name>value</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + </tag> + + <tag> + <description>Evaluates a Spring expression (SpEL) and either prints the result or assigns it to a variable.</description> + <name>eval</name> + <tag-class>org.springframework.web.servlet.tags.EvalTag</tag-class> + <body-content>JSP</body-content> + <attribute> + <description>The expression to evaluate.</description> + <name>expression</name> + <required>true</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>The name of the variable to export the evaluation result to.</description> + <name>var</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>The scope for the var. 'application', 'session', 'request' and + 'page' scopes are supported. Defaults to page scope. This attribute has no + effect unless the var attribute is also defined.</description> + <name>scope</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Set HTML escaping for this tag, as a boolean value. Overrides the + default HTML escaping setting for the current page.</description> + <name>htmlEscape</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description>Set JavaScript escaping for this tag, as a boolean value. Default is false.</description> + <name>javaScriptEscape</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + </tag> + +</taglib> diff --git a/bbb-lti/test/unit/BigbluebuttonServiceTests.groovy b/bbb-lti/src/test/groovy/org/BigbluebuttonServiceTests.groovy similarity index 100% rename from bbb-lti/test/unit/BigbluebuttonServiceTests.groovy rename to bbb-lti/src/test/groovy/org/BigbluebuttonServiceTests.groovy diff --git a/bbb-lti/test/unit/LtiServiceTests.groovy b/bbb-lti/src/test/groovy/org/LtiServiceTests.groovy similarity index 100% rename from bbb-lti/test/unit/LtiServiceTests.groovy rename to bbb-lti/src/test/groovy/org/LtiServiceTests.groovy diff --git a/bbb-lti/test/unit/ToolControllerTests.groovy b/bbb-lti/src/test/groovy/org/ToolControllerTests.groovy similarity index 100% rename from bbb-lti/test/unit/ToolControllerTests.groovy rename to bbb-lti/src/test/groovy/org/ToolControllerTests.groovy diff --git a/bbb-lti/test/unit/org/bigbluebutton/BigbluebuttonServiceSpec.groovy b/bbb-lti/src/test/groovy/org/bigbluebutton/BigbluebuttonServiceSpec.groovy similarity index 100% rename from bbb-lti/test/unit/org/bigbluebutton/BigbluebuttonServiceSpec.groovy rename to bbb-lti/src/test/groovy/org/bigbluebutton/BigbluebuttonServiceSpec.groovy diff --git a/bbb-lti/test/unit/org/bigbluebutton/LtiServiceSpec.groovy b/bbb-lti/src/test/groovy/org/bigbluebutton/LtiServiceSpec.groovy similarity index 100% rename from bbb-lti/test/unit/org/bigbluebutton/LtiServiceSpec.groovy rename to bbb-lti/src/test/groovy/org/bigbluebutton/LtiServiceSpec.groovy diff --git a/bbb-lti/test/unit/org/bigbluebutton/ToolControllerSpec.groovy b/bbb-lti/src/test/groovy/org/bigbluebutton/ToolControllerSpec.groovy similarity index 100% rename from bbb-lti/test/unit/org/bigbluebutton/ToolControllerSpec.groovy rename to bbb-lti/src/test/groovy/org/bigbluebutton/ToolControllerSpec.groovy diff --git a/bbb-lti/web-app/WEB-INF/applicationContext.xml b/bbb-lti/web-app/WEB-INF/applicationContext.xml deleted file mode 100644 index 130e70d1a1..0000000000 --- a/bbb-lti/web-app/WEB-INF/applicationContext.xml +++ /dev/null @@ -1,31 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<beans xmlns="http://www.springframework.org/schema/beans" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> - - <bean id="grailsApplication" class="org.codehaus.groovy.grails.commons.GrailsApplicationFactoryBean"> - <description>Grails application factory bean</description> - <property name="grailsDescriptor" value="/WEB-INF/grails.xml" /> - </bean> - - <bean id="pluginManager" class="org.codehaus.groovy.grails.plugins.GrailsPluginManagerFactoryBean"> - <description>A bean that manages Grails plugins</description> - <property name="grailsDescriptor" value="/WEB-INF/grails.xml" /> - <property name="application" ref="grailsApplication" /> - </bean> - - <bean id="grailsConfigurator" class="org.codehaus.groovy.grails.commons.spring.GrailsRuntimeConfigurator"> - <constructor-arg> - <ref bean="grailsApplication" /> - </constructor-arg> - <property name="pluginManager" ref="pluginManager" /> - </bean> - - <bean id="characterEncodingFilter" class="org.springframework.web.filter.CharacterEncodingFilter"> - <property name="encoding"> - <value>utf-8</value> - </property> - </bean> - - <bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean" /> -</beans> \ No newline at end of file diff --git a/bbb-lti/web-app/WEB-INF/sitemesh.xml b/bbb-lti/web-app/WEB-INF/sitemesh.xml deleted file mode 100644 index 72399ceca6..0000000000 --- a/bbb-lti/web-app/WEB-INF/sitemesh.xml +++ /dev/null @@ -1,14 +0,0 @@ -<sitemesh> - <page-parsers> - <parser content-type="text/html" - class="org.codehaus.groovy.grails.web.sitemesh.GrailsHTMLPageParser" /> - <parser content-type="text/html;charset=ISO-8859-1" - class="org.codehaus.groovy.grails.web.sitemesh.GrailsHTMLPageParser" /> - <parser content-type="text/html;charset=UTF-8" - class="org.codehaus.groovy.grails.web.sitemesh.GrailsHTMLPageParser" /> - </page-parsers> - - <decorator-mappers> - <mapper class="org.codehaus.groovy.grails.web.sitemesh.GrailsLayoutDecoratorMapper" /> - </decorator-mappers> -</sitemesh> \ No newline at end of file -- GitLab