最近のアクセス:
環境に対する [Parameters Style] プロパティ

生成されたアプリケーションで標準の URL クエリ コンポーネント スタイル (各パラメーターをその名前で識別) を使用するか、サポートされている別のスタイルを使用するかを決定します。

Named URL に含まれるパラメーターには名前が指定され、アンパサンド (&) で区切られます。
Positional URL に含まれるパラメーターは位置が決まっていて、コンマ (,) で区切られます。

適用範囲

ジェネレーター: .NET.NET FrameworkJava
レベル: 環境

説明

新しい環境では、パラメーターは、既定で名前が指定されます。これは共通または標準的な URL 記述スタイルに従うもので、Web Application Firewall (WAF) の構成を容易にするなどのメリットがあります。
[ Parameters Style ] プロパティの値が Named の場合、パラメーターは URL のクエリ文字列に次のように現れます:
?ParameterName1=value1&ParameterName2=value2...&ParameterNameN=valueN
また、クエリ文字列に現れる順序は重要ではありません。コードは次のとおりです:
?ParameterName1=value1&ParameterName2=value2
これは次の記述と同等です: 
?ParameterName2=value2&ParameterName1=value1
[ Parameters Style ] プロパティの値が Positional の場合、パラメーターは URL のクエリ文字列に次のように現れます:
?value1,value2,..valueN

  • このプロパティの値が Named の場合でも、プログラムは受け取ったパラメーターを位置が決まっているスタイルで読み取ることができます。
  • 動的な呼び出し動的リンクはこのプロパティには影響されず、URL を位置が決まっているスタイルで使用したり作成したりします。
  • 暗号化されたパラメーターを使用するプログラムの URL は、このプロパティには影響されません。


値を Positional から Named に変更する場合の考慮事項

このプロパティの値を Positional から Named に変更しても、GeneXus で記述したすべてのコードは通常どおりに動作し続けるはずです。
クエリ文字列で名前を指定するパラメーターを使うと予想されている場合 (「例 2: 値を Positional から Named に変更する際の互換性の問題」を参照)、これは当てはまりません。
その他の留意点: 
  • WAF のルールの構成
  • URL のクエリ文字列を確認する UI テスト
  • URL の長さ (現在では長くなっています)
 

実行時/設計時

このプロパティは設計時にのみ適用されます。

例 1: 一般的なケース

次のルールを持つ「Client」オブジェクトがあるとします:
Parm(&Mode,&ClientId);
これが example.com で実行され、別のオブジェクトによって次のように呼び出されるとします:
Client('UPD',1)
この場合、URL に次のように現れます:
  • 「http://www.example.com/Client?Mode=UPD&ClientId=1」( [ Parameters Styles ] プロパティの値が Named に設定されている場合):
  • 「http://www.example.com/Client?UPD,1」( [ Parameters Style ] プロパティの値が Positional に設定されている場合)


例 2: 値を Positional から Named に変更する際の互換性の問題

2 つのオブジェクトがあり、その 1 つが別のオブジェクトを次のような行で呼び出すとします:
MyWebObject(!"Parm1=MyValue")
MyWebObject:  
parm(in:&MyParameter);
ソース:
&ParameterValueStartPosition =  &MyParameter.IndexOf(!"=");
&ParameterValue = &MyParameter.SubString(&ParameterValueStartPosition+1)
msg(&ParameterValue)
[ Parameters Style ] プロパティが Positional に設定されている場合、メッセージ「MyValue」が表示されます。Named のパラメーターを使用する場合、"MyValue" を再度表示するには、呼び出し側のコードを以下のように変更する必要があります:
MyWebObject(!"Parm1%3DMyValue")

プロパティの変更の適用方法

プロパティに値を設定したときに、それに対応する変更を適用するには、任意のオブジェクトをビルドします。

参考情報



サブページ
Created: 21/04/20 02:19 by Admin Last update: 24/03/25 23:57 by Admin
カテゴリ
Powered by GXwiki 3.0