Как структурировать мой админ плагин CakePHP

Вы не можете использовать условный оператор ?: в выражениях значения и действия. Выражение значения выдало бы PropertyNotWritableException в форме submit, потому что синтаксис EL не представляет собой операцию записи, вместо этого это операция только для чтения. Выражение действия уже выбрало бы ELException: not a valid method expression для загрузки страницы, потому что синтаксис EL не представляет собой выражение метода, а выражение значения.

Вам нужно решить его по-другому, а затем таким образом, чтобы вы могли полностью избавиться от условного оператора ?: в выражениях значения и действия. Это может быть достигнуто несколькими способами:

  1. Использование абстрактного базового класса и файла тэга. В настоящее время имена методов вашего имени бэк-компонента, к сожалению, не выровнены таким образом, что они одинаковы для обоих классов. Вы выровнены только для свойства globalFilter, но методы прослушивания действий не используются. Я предлагаю переименовать их в filter() и resetFilter(). Затем вы можете извлечь абстрактный базовый класс из этих классов bean и использовать его в файле custom tag , например, следующим образом:
    
    
    , который реализован следующим образом (если предположить, что эти beans являются областями запроса):
    
    
    
    
    (если ваш компонент находится в другой области, просто измените #{requestScope} соответственно, например #{viewScope})
  2. Использование JSTL для условного построения представления. Это действительно неуклюжий (не DRY ), но, возможно, проще для стартера и фактически единственный способ, если вы не можете изменить сигнатуры метода по какой-то неясной причине.
    
        
            
            
            
        
        
            
            
            
        
    
    

0
задан bigmike7801 25 February 2015 в 17:08
поделиться