Overriding Declarative Method

 
Overriding Declarative Method
宣言メソッドの上書きを使うとき:
①  Managed-beanのscopeがsessionの場合:以下ようなエラーが出てきた。
JBO-29000: javax.faces.FacesException: 参照先オブジェクト : '#{bindings}' の範囲が参照元オブジェクトより短くなっています
②  Managed-beanのscopeがrequestの場合:以下ようなエラーが出てきた。
JBO-29000: java.lang.IllegalArgumentException: Object: {} is not a known entity type.; nested exception is: java.lang.IllegalArgumentException: Object: {} is not a known entity type.
原因:
① 宣言メソッドの上書きを含めてある Managed-beanのscopeは必ずrequestとなる。Scopeがsessionだったら、以下のエラーになります:
JBO-29000: javax.faces.FacesException: 参照先オブジェクト: '#{bindings}' の範囲が参照元オブジェクトより短くなっています
  原因:これは、上書きするメソッドを含むマネージドBeanのスコープが、 requestより大きい(つまり、 sessionまたは applicationである)ためです。メソッドで参照されるバインディング・コンテナ内のデータのスコープが requestであるため、このマネージドBeanのスコープは requestか、より小さいスコープに設定する必要があります。
 
              今は二つ画面:一覧画面 ―> 編集画面。
    遷移元画面(一覧画面)の処理:
                  <af:setActionListener from="#{row.itemCode}"
                                  to="#{backing_untitled4.itemCode}"/>
   遷移先画面(編集画面)の処理:
        <methodAction id="mergeEntity"
                   … … … …
          <NamedData NDName="entity"
                 NDValue="${bindings.searchXxodfItemIter.currentRow.dataProvider}"
                 NDType="java.lang.Object"/>
           </methodAction>
  宣言メソッドの上書きを使うとき:以下の現象が発生されます:
Managed-beanのscopeがrequestの場合: 編集画面から遷移元画面(一覧画面)へ戻るとき、更新されたデータは遷移元画面テーブルの一行目だけに表示されまして、元々の一行目は隠されました。更新元データもテーブルに保留されます。 Session の場合は問題がない。
  原因:具体的に原因分からないですけど、たぶん渡しているパラメータを落ちました。
  解決:遷移元画面のパラメータを直接に遷移先画面のマネージド bean のプロパティへ渡されない。この二つ画面間に新しい sessionBean を作成して、遷移元画面のパラメータをこの新作成の sessionBean に渡します。
 
また:
上書き済メソッドを使用するボタンをクリックすると、 #{bindings}という値(バインディング・コンテナへの参照)を持つ管理プロパティがバッキングBeanに追加される。
 Faces-config.xmlファイルに以下のソースを追加:
<managed-property>
                        <property-name>bindings</property-name>
                        <value>#{bindings}</value>
           </managed-property>
  Managed-bea ファイルに以下のソースを追加:
              private BindingContainer bindings;
              public BindingContainer getBindings() { return this.bindings; }
             public void setBindings(BindingContainer bindings) { this.bindings = bindings;}
 
           public String commandButton1_action() {   
                      BindingContainer bindings = getBindings();
                      OperationBinding operationBinding =
                                               bindings.getOperationBinding("mergeEntity");
                      Object result = operationBinding.execute();
                      if (!operationBinding.getErrors().isEmpty()) {
                                 return null;
                      }
                      return "back";
             }
それで、 上書き済メソッドを削除する時、Faces-config.xmlファイルに以上のソースも必須削除されます、逆には、既存のファイルに新しいコントロールをドラッグして、同じエラーが表示される。
 
参考ファイル:
<think>好的,我现在需要解决用户关于“netfstudio数据集覆盖方向方法”的问题。首先,用户提到的“netfstudio”可能是某个特定领域的数据集,但根据提供的引用内容,并没有直接提到这个数据集的信息。不过用户引用了几个相关的内容,比如引用[1]提到了rectilinear grid(直角坐标网格),引用[5]提到了POSIT算法用于姿态估计。这可能与数据集的方向覆盖有关。 接下来,我需要分析用户的问题。用户想要覆盖数据集的方向方法,可能是指调整数据集中样本的方向,比如在计算机视觉中调整图像的朝向,或者在三维模型中调整坐标系的方向。覆盖(override)通常指替换默认的方法或参数,因此用户可能需要自定义方向处理的方法。 根据引用[1],rectilinear grid可能与数据集的结构有关,可能数据集是基于网格的,每个点有坐标参数。覆盖方向可能涉及调整这些坐标的变换方式。引用[5]提到的POSIT算法用于从二维图像估计三维姿态,可能用户需要结合姿态估计来调整数据集的方向。 可能的解决方案步骤包括: 1. 数据预处理:在加载数据集时,应用坐标变换或旋转矩阵来覆盖默认方向。例如,使用旋转矩阵调整每个数据点的方向。 2. 修改网格参数:如果是rectilinear grid,调整网格的方向参数,如旋转角度或坐标轴顺序。 3. 集成姿态估计:如使用POSIT算法从输入数据中估计姿态,然后应用逆变换来纠正方向。 4. 配置文件或API调整:检查数据集是否有提供方向参数设置的选项,通过修改配置文件或调用API方法覆盖默认方向。 需要验证这些步骤是否可行,比如查看数据集的文档是否有相关参数,或者是否支持自定义变换。如果数据集结构固定,可能需要导出数据并手动处理后再导入。此外,引用[4]提到了RecyclerView的XML配置,可能用户在使用某个框架,需要调整布局中的方向设置,比如在XML中设置旋转属性。 可能的挑战包括数据集的访问权限、变换对后续处理的影响,以及如何准确应用旋转矩阵或坐标变换。需要确保覆盖方向后,数据的一致性不被破坏,比如标签与调整后的方向对应正确。 最后,生成相关问题需要考虑用户可能遇到的后续问题,如性能优化、具体实现细节或错误处理等。</think>### NetFStudio数据集方向覆盖方法解决方案 根据引用[1]提到的rectilinear grid参数化矩阵特性,方向覆盖可通过以下步骤实现: 1. **坐标系变换** 在数据预处理阶段应用旋转矩阵实现方向覆盖: $$R_z(\theta) = \begin{bmatrix} \cos\theta & -\sin\theta & 0 \\ \sin\theta & \cos\theta & 0 \\ 0 & 0 & 1 \end{bmatrix}$$ 该矩阵可实现绕Z轴旋转θ角度[^1] 2. **网格参数覆盖** 修改rectilinear grid参数中的方向标识符: ```python dataset.orientation_override = { 'axis_order': 'ZYX', # 覆盖默认XYZ顺序 'rotation_deg': 45 # 绕法线方向旋转 } ``` 3. **姿态估计集成** 结合引用[5]的POSIT算法,通过姿态估计结果动态修正方向: ```cpp Mat estimated_pose = POSIT(modelPoints, imagePoints); dataset.apply_pose_correction(estimated_pose); ``` 4. **配置文件覆盖** 在dataset_config.xml中添加方向参数: ```xml <orientation_override> <coordinate_system>LEFT_HANDED</coordinate_system> <up_axis>Y</up_axis> </orientation_override> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值