2017-01-06 4 views
0

In Jsp, was ist der Unterschied zwischen ${param.name} und ${param[name]}?
ich getestet habe, dass sie beide den Parameter erhalten kann ich aus ein Servlet, aber ich möchte den Unterschied zwischen ihnen herausfinden. In welcher Situation kann man arbeiten, während eine andere nicht?
Vielen Dank im Voraus.

+0

@shmosel Danke, ich kann einfach nicht die relevanten Informationen finden und denke, dass es ein Unterschied sein kann :) – jacky

+2

Wenn 'name' ein String-Variable mit dem Wert ist' „name“ ', gibt es keine Unterschied. Wenn 'name'' 'foo" 'ist, dann ist $ {param [name]}' dasselbe wie '$ {param.foo}'. – Andreas

Antwort

1

Alle folgenden Möglichkeiten ausgewertet gleichen in Standard-JSP EL:

${param.myvar} 
${param[name]} // here `name` is another EL variable with value `name = "myvar"` 
${param["myvar"]} 
${param['myvar']} 

Wenn Sie auf eine Variable sich beziehen, dann können Sie 2. ein verwenden. Andernfalls, wenn Sie direkt über Wert zugreifen, können Sie das 3. oder 4. verwenden.

+0

Und deshalb gibt es * einen * Unterschied, da # 2 anders ist. Du hast es selbst in dem Kommentar gesagt. – Andreas

+0

Vielen Dank für die Benachrichtigung von @Andreas. Ich habe das entsprechend bearbeitet. –

1

Nach JSP-Spezifikation:

Der EL ECMAScript folgt die Behandlung der zu vereinen. und [] Operatoren.
expr-a.identifier-b ist äquivalent zu expr-a ["identifier-b"]; Das heißt, der Bezeichner identifier-b wird verwendet, um ein Literal zu konstruieren, dessen Wert der Bezeichner ist, und dann wird der Operator [] mit diesem Wert verwendet.

Verwandte Themen