params Interceptor trong Struts 2




params Interceptor, là viết tắt của Parameters Intercepto, được sử dụng để thiết lập tất cả các tham số trên ValueStack. Theo mặc định, nó được tìm thấy trong Stack mặc định. Vì thế bạn không cần xác định nó một cách tường minh.

Trình làm việc nội tại của params Interceptor

Nó lấy tất cả các tham số bằng việc gọi phương thức getParameters() của ActionContext và thiết lập nó trên valuestack bởi gọi phương thức setValue() của ValueStack.

Có 4 tham số được định nghĩa trong params Interceptor

1. Ordered: Là true theo mặc định, nhưng có thể được sử dụng để top/down hành vi thuộc tính.

2. paramNameMaxLength: xác định độ dài tối đa cho tham số. Độ dài mặc định là 100 ký tự. Độ dài của tham số mà lớn hơn 100 sẽ bị bỏ qua.

3. excludeParams: xác định các tên tham số mà không được phép. Bạn có thể xác định nhiều tên ở đây bởi phân biệt chúng bằng dấu phảy.

4. acceptParamNames: xác định các tên tham số được chấp nhận.

Loading...

Ví dụ params Interceptor trong Struts 2

Dưới đây là ví dụ đơn giản về params Interceptor:

<action name="login" class="com.vietjack.Login">
    <interceptor-ref name="params"/>
    <result name="success">login-success.jsp</result>
</action>

Ghi chú: Nếu bạn xác định tường minh bất kỳ Interceptor nào, thì Interceptor mặc định sẽ là không có sẵn cho lớp action.

defaultStack Interceptor trong Struts 2

params Interceptor được tìm thấy trong default stack. Bạn không cần xác định chúng. Dưới đây là code cho default Interceptor:

<interceptor-stack name="defaultStack">
                <interceptor-ref name="exception"/>
                <interceptor-ref name="alias"/>
                <interceptor-ref name="servletConfig"/>
                <interceptor-ref name="prepare"/>
                <interceptor-ref name="i18n"/>
                <interceptor-ref name="chain"/>
                <interceptor-ref name="debugging"/>
                <interceptor-ref name="profiling"/>
                <interceptor-ref name="scopedModelDriven"/>
                <interceptor-ref name="modelDriven"/>
                <interceptor-ref name="fileUpload"/>
                <interceptor-ref name="checkbox"/>
                <interceptor-ref name="staticParams"/>
                <interceptor-ref name="actionMappingParams"/>
                <interceptor-ref name="params">
                  <param name="excludeParams">dojo\..*,^struts\..*</param>
                </interceptor-ref>
                <interceptor-ref name="conversionError"/>
                <interceptor-ref name="validation">
                    <param name="excludeMethods">input,back,cancel,browse</param>
                </interceptor-ref>
                <interceptor-ref name="workflow">
                    <param name="excludeMethods">input,back,cancel,browse</param>
                </interceptor-ref>
            </interceptor-stack>