Привет.
Сегодня Salesforce сломал мой мозг. Я долго не мог понять почем не работает моя страница. Все перепробовал, потратил кучу времени, а прикол оказался в самом казалось бы безобидном месте.
Народ, это у меня глюки или в Salesforce?
Вот кусок кода:
FUCK
<div>
<apex:outputPanel layout="block" rendered="{!pLastLocation!=null}" >
AAAAA
</apex:outputPanel>
<apex:outputPanel layout="block" rendered="{!pLastLocation==null}" >
BBBBB
</apex:outputPanel>
</div>
<div>
<apex:outputPanel layout="block" rendered="{!ISNULL(pLastLocation)}" >
CCCCC
</apex:outputPanel>
<apex:outputPanel layout="block" rendered="{!NOT(ISNULL(pLastLocation))}" >
DDDDD
</apex:outputPanel>
</div>
Вот что мне возвращает SF:
FUCK
AAAAA
BBBBB
CCCCC
Как такое может быть?
pLastLocation - это переменная которая должна содержать экземпляр apex класса (DTO).
В этот момент она только объявлена, но не проинициализирована, т.е. по идее должна содержать null.
Привет. Сегодня Salesforce сломал мой мозг. Я долго не мог понять почем не работает моя страница. Все перепробовал, потратил кучу времени, а прикол оказался в самом казалось бы безобидном месте. Народ, это у меня глюки или в Salesforce? Вот кусок кода: [code] FUCK <div> <apex:outputPanel layout="block" rendered="{!pLastLocation!=null}" > AAAAA </apex:outputPanel> <apex:outputPanel layout="block" rendered="{!pLastLocation==null}" > BBBBB </apex:outputPanel> </div> <div> <apex:outputPanel layout="block" rendered="{!ISNULL(pLastLocation)}" > CCCCC </apex:outputPanel> <apex:outputPanel layout="block" rendered="{!NOT(ISNULL(pLastLocation))}" > DDDDD </apex:outputPanel> </div> [/code] Вот что мне возвращает SF: [b] FUCK AAAAA BBBBB CCCCC [/b] Как такое может быть? pLastLocation - это переменная которая должна содержать экземпляр apex класса (DTO). В этот момент она только объявлена, но не проинициализирована, т.е. по идее должна содержать null.
А серверный код где?
Контоллер/getpLastLocation, еще что-то)
А серверный код где? Контоллер/getpLastLocation, еще что-то)
Если правильно помню есть у них такой косяк. Я обычно проверяю на size
[quote="Dmitry Shnyrev"]Привет. Сегодня Salesforce сломал мой мозг. Я долго не мог понять почем не работает моя страница. Все перепробовал, потратил кучу времени, а прикол оказался в самом казалось бы безобидном месте. Народ, это у меня глюки или в Salesforce? Вот кусок кода: [code] FUCK <div> <apex:outputPanel layout="block" rendered="{!pLastLocation!=null}" > AAAAA </apex:outputPanel> <apex:outputPanel layout="block" rendered="{!pLastLocation==null}" > BBBBB </apex:outputPanel> </div> <div> <apex:outputPanel layout="block" rendered="{!ISNULL(pLastLocation)}" > CCCCC </apex:outputPanel> <apex:outputPanel layout="block" rendered="{!NOT(ISNULL(pLastLocation))}" > DDDDD </apex:outputPanel> </div> [/code] Вот что мне возвращает SF: [b] FUCK AAAAA BBBBB CCCCC [/b] Как такое может быть? pLastLocation - это переменная которая должна содержать экземпляр apex класса (DTO). В этот момент она только объявлена, но не проинициализирована, т.е. по идее должна содержать null.[/quote] Если правильно помню есть у них такой косяк. Я обычно проверяю на size
Кстати я раньше только и использовал FORMULA для всякого рода проверок (ISNULL(), ISBLANK(), NOT(), OR(), AND()) да вот не помню почему перешел на простые проверки типа == != && || в блоках Rendered. По ходу это была плохая идея, хотя до этого проблем не было.
[quote="wilder"]Я обычно проверяю на size[/quote] Пока не проверял, просто предполагаю. А будет ли работать size от null, не выкинет ошибку? Кстати я раньше только и использовал FORMULA для всякого рода проверок (ISNULL(), ISBLANK(), NOT(), OR(), AND()) да вот не помню почему перешел на простые проверки типа == != && || в блоках Rendered. По ходу это была плохая идея, хотя до этого проблем не было.