| 

.NET C# Java Javascript Exception

Suche über mehrere Datenbankfelder in Grails/Groovy

Dies ist das Archiv des ehemaligen Forums zum Thema Groovy, Grails, Griffon und Bean Scripting Framework, welches unter groovy-forum.de existierte. Die neue Adresse des Groovy-Forums ist: http://codekicker.de/fragen/themen/groovy.


Suche über mehrere Datenbankfelder in Grails/Groovy

ProgFish - 11.05.2010 17:12
ich habe ein Problem bei der Anpassung der Suchfunktion eines vorhandenen Programms..
In dem Programm gibt es eine Suchseite, mit der ich anhand der Spindnummer oder des Namen des Mitarbeiters die Schlüsselnummer eines Mitarbeiters finden kann. Funktioniert soweit auch bestens, allerdings musste ich ja nun ein Kennzeichen für männlich oder weiblich einführen. Dieses Kennzeichen will ich jetzt mit in meiner Suchseite haben. Das Feld habe ich auch bereits erfolgreich in die Suchseite mit eingefügt, allerdings weiss ich leider nicht, wie ich das Feld nun in die Suche mit einarbeite.


Die Datei heisst showSecret.gsp und ich hab folgendes geändert:




<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
        <meta name="layout" content="main" />
        <title>Schl&uuml;sselnummer anzeigen</title>
    </head>
    <body>
        <div class="nav">
            <span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
        </div>
        <div class="body">
            <h1>Schl&uuml;sselnummer anzeigen</h1>
            <g:if test="${flash.message}">
				<div class="message">${flash.message}</div>
            </g:if>
            <g:if test="${mitarbeiter?.size > 1}">
				<div class="list">
					<table>
						<g:each in="${mitarbeiter}" status="i" var="mitarbeiterInstance">
							<tr class="${(i % 2) == 0 ? 'odd' : 'even'}">								
								<td><g:link action="showSecret" id="${mitarbeiterInstance.id}">${fieldValue(bean:mitarbeiterInstance, field:'name')}</g:link></td>
							</tr>
						</g:each>
					</table>
				</div>
			</g:if>
            <g:if test="${mitarbeiter?.size == 1}">
				<div class="message">Name: ${mitarbeiter[0].name} , Pers.-Nr: ${mitarbeiter[0].persNr} , Schl&uuml;sselnummer: ${mitarbeiter[0].schluesselnummer}</div>
			</g:if>
            <g:if test="${!mitarbeiter}">
				<g:form>
					<div class="dialog">
						<table>
							<tbody>
												
								<tr class="prop">
									<td valign="top" class="secret">
										<label for="Secret">Passwort:</label>
									</td>
									<td valign="top" class="secret">
										<input type="password" id="secret" name="secret" value="" />
									</td>
								</tr> 

								<tr class="prop">
									<td valign="top" class="name">
										<label for="spindnummer">Name oder Spindnummer:</label>
									</td>
									<td valign="top" class="">
										<input type="text" id="search" name="search" value="" />
									</td>
								</tr> 
								// ###### AB HIER BEGINNT DAS NEUE FELD
								<tr class="prop">
									<td valign="top" class="kennz">
										<label for="kennz">Kennzeichen:</label>
									</td>
									<td valign="top" class="">
										<input type="text" id="search2" name="search2" value="" />
									</td>
								</tr> 
							// ### ENDE DES NEUEN FELDES 
							</tbody>
						</table>
					</div>
					<div class="buttons">
						<span class="button"><g:actionSubmit class="show" value="Anzeigen" action="showSecret" /></span>
					</div>
				</g:form>
			</g:if>
        </div>
    </body>
</html>

bisher hab ich in der Klasse nur das Feld 'kennz' hinzugefügt.
hier noch der Code des Controllers dazu:


class ShowSecretController {

    def index = { redirect(action:showSecret,params:params) }

    def showSecret = {
	
		def mitarbeiter = [];

		if (params.id) {
			println params.id
			mitarbeiter[0] = Mitarbeiter.get( params.id )
		}
	
		if (params.secret == 'xxxx') {
			println params.search
			try {
				def spnr = Integer.parseInt(params.search)
				mitarbeiter = Mitarbeiter.findAllBySpindnummer(spnr)
			} catch (Exception ex) {}
			
			if(!mitarbeiter) {
				mitarbeiter = Mitarbeiter.findAllByNameLike('%'+params.search.toUpperCase()+'%')
			}

			if(mitarbeiter == null)
				flash.message = "Kein Mitarbeiter mit Namen oder Spindnummer '${params.search}' gefunden"
		}
		else if (params.secret?.length() > 0)
			flash.message = "Das Passwort ist falsch"

		return [ mitarbeiter : mitarbeiter ]
    }
}

kann mir jemand da vielleicht auch noch helfen und mir sagen, wo noch Änderungen vorgenommen werden müssen ?
PLS PLS PLS

MFG


Stelle deine Groovy-Frage jetzt!


Diese Seite zeigt den Thread "Suche über mehrere Datenbankfelder in Grails/Groovy" der ehemaligen Webseite groovy-forum.de, welche durch einen Serverunfall zerstört wurde. codekicker.de hat viele Konversationen über die beliebte Programmiersprache Groovy und zugehörige Frameworks wie das Grails-Framework retten können.

Hast Du eine Frage zum Thema Groovy, Grails oder allgemein Java? Viele ehemalige groovy-forum.de Mitglieder beantworten dir auf codekicker.de deine Frage! Stelle jetzt eine Frage!

Viele weitere Diskussionen zu Grails und Groovy befinden sich auf der Threadübersicht des alten groovy-forum.de.