Here the server decides which containers refresh - the action calls AjaxUpdater.triggerUpdate("id", context()) for each target and returns null. The client never declares an updateContainerID. This is the idiom real apps use (fire two named containers; or fire a set minus the current one).
basicInfo (server-targeted)
0
bottomContainer (server-targeted)
0
untouched (never named)
0
The triggering link is inside allBox1, which the action drops from its set (it is refreshed by the click itself) and fires allBox2 + allBox3 server-side.
allBox2 (server-targeted)
0
allBox3 (server-targeted)
0